Skip to content

Commit

Permalink
Merge branch 'main' into my-pages/fix-mobile-menu-scroll
Browse files Browse the repository at this point in the history
  • Loading branch information
disaerna authored Feb 5, 2025
2 parents fb96636 + 19e9558 commit 4f09e61
Show file tree
Hide file tree
Showing 13 changed files with 259 additions and 63 deletions.
2 changes: 1 addition & 1 deletion apps/native/app/src/screens/health/health-overview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({
})}
onPress={() =>
openBrowser(
`${origin}/minarsidur/heilsa/lyf/lyfjakaup`,
`${origin}/minarsidur/heilsa/lyf/greidsluthatttaka`,
componentId,
)
}
Expand Down
4 changes: 2 additions & 2 deletions apps/web/components/GrantCardsList/GrantCardsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ const GrantCardsList = ({ slice }: SliceProps) => {
<>
{slice.displayTitle && (
<Box marginBottom={2}>
<Text variant="h3" as="span" color="dark400">
<Text variant="h3" as="h3" color="dark400">
{slice.title}
</Text>
</Box>
Expand Down Expand Up @@ -231,7 +231,7 @@ const GrantCardsList = ({ slice }: SliceProps) => {
<>
{slice.displayTitle && (
<Box marginBottom={2}>
<Text variant="h3" as="span" color="dark400">
<Text variant="h3" as="h3" color="dark400">
{slice.title}
</Text>
</Box>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ export const LatestEventsSlice = ({
iconType="filled"
variant="text"
as="span"
unfocusable={true}
>
{seeMoreEventsText}
</Button>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { style } from '@vanilla-extract/css'

import { theme, themeUtils } from '@island.is/island-ui/theme'

export const itemContainer = style({
borderStyle: 'solid',
borderWidth: theme.border.width.standard,
borderColor: theme.color.transparent,
borderRadius: theme.border.radius.large,
transition: 'border-color 150ms ease, opacity 150ms ease',
padding: theme.spacing[2],
':hover': {
borderColor: theme.color.blue400,
},
})

export const itemListContainer = style({
display: 'grid',
gap: theme.spacing[4],
...themeUtils.responsiveStyle({
xs: {
gridTemplateColumns: 'minmax(230px, 500px)',
justifyContent: 'center',
},
md: {
gridTemplateColumns: 'repeat(auto-fit, minmax(302px, 1fr))',
},
}),
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
import React from 'react'

import {
Box,
Button,
GridContainer,
Hidden,
Inline,
LinkV2,
Stack,
Tag,
Text,
} from '@island.is/island-ui/core'
import { BackgroundImage } from '@island.is/web/components'
import { LatestNewsSlice as LatestNewsSliceSchema } from '@island.is/web/graphql/schema'
import { useLinkResolver } from '@island.is/web/hooks'
import { shortenText } from '@island.is/web/screens/IcelandicGovernmentInstitutionVacancies/IcelandicGovernmentInstitutionVacanciesList'

import * as styles from './DigitalIcelandLatestNewsSlice.css'

interface ItemProps {
imageSrc: string
date: string
title: string
description?: string | null
tags: string[]
href: string
}

const Item = (item: ItemProps) => {
return (
<LinkV2 href={item.href} className={styles.itemContainer}>
<Box
display="flex"
flexDirection="column"
flexWrap="nowrap"
rowGap={[2, 2, 2, 5]}
justifyContent="spaceBetween"
height="full"
>
<Stack space={2}>
<BackgroundImage
positionX="left"
backgroundSize="cover"
image={{ url: item.imageSrc }}
ratio="396:210"
boxProps={{
alignItems: 'center',
width: 'full',
display: 'inlineFlex',
overflow: 'hidden',
borderRadius: 'large',
}}
/>

<Stack space={1}>
<Text variant="h3">{item.title}</Text>
<Text variant="medium">
{shortenText(item.description ?? '', 80)}
</Text>
</Stack>
</Stack>
<Box>
<Inline space={1}>
{item.tags.map((tag) => (
<Tag key={tag} disabled>
{tag}
</Tag>
))}
</Inline>
</Box>
</Box>
</LinkV2>
)
}

const SeeMoreLink = ({ slice, slug }: SliceProps) => {
const { linkResolver } = useLinkResolver()
return (
<LinkV2
href={
slice.readMoreLink?.url
? slice.readMoreLink.url
: linkResolver('organizationnewsoverview', [slug]).href
}
>
<Button as="span" unfocusable={true} variant="text" icon="arrowForward">
{slice.readMoreText}
</Button>
</LinkV2>
)
}

interface SliceProps {
slice: LatestNewsSliceSchema
slug: string
}

export const DigitalIcelandLatestNewsSlice: React.FC<
React.PropsWithChildren<SliceProps>
> = ({ slice, slug }) => {
const { linkResolver } = useLinkResolver()
return (
<Box component="section" aria-labelledby="news-items-title">
<GridContainer>
<Stack space={4}>
<Box
display="flex"
flexDirection="row"
justifyContent="spaceBetween"
alignItems="center"
rowGap={3}
columnGap={3}
>
<Text
id="news-items-title"
variant="h2"
as="h2"
dataTestId="home-news"
>
{slice.title}
</Text>
<Hidden below="md">
<SeeMoreLink slice={slice} slug={slug} />
</Hidden>
</Box>
<Box className={styles.itemListContainer}>
{slice.news.slice(0, 3).map((news) => (
<Item
key={news.id}
href={linkResolver('organizationnews', [slug, news.slug]).href}
date={news.date}
description={news.intro}
imageSrc={news.image?.url ?? ''}
tags={news.genericTags.map((tag) => tag.title)}
title={news.title}
/>
))}
</Box>
<Hidden above="sm">
<Box display="flex" justifyContent="center">
<SeeMoreLink slice={slice} slug={slug} />
</Box>
</Hidden>
</Stack>
</GridContainer>
</Box>
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './DigitalIcelandLatestNewsSlice'
1 change: 1 addition & 0 deletions apps/web/components/real.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,4 @@ export * from './connected/ParentalLeaveCalculator/ParentalLeaveCalculator'
export * from './Organization/OrganizationIslandFooter'
export * from './Organization/Slice/FeaturedLinksSlice/FeaturedLinksSlice'
export * from './FeaturedLinks/FeaturedLinks'
export * from './Organization/Slice/LatestNewsSlice/DigitalIcelandLatestNewsSlice'
49 changes: 34 additions & 15 deletions apps/web/screens/Organization/Home/Home.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
Text,
} from '@island.is/island-ui/core'
import {
DigitalIcelandLatestNewsSlice,
getThemeConfig,
IconTitleCard,
OrganizationWrapper,
Expand Down Expand Up @@ -204,21 +205,39 @@ const OrganizationHomePage = ({
: 0
}
>
{organizationPage?.bottomSlices.map((slice) => (
<SliceMachine
key={slice.id}
slice={slice}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore make web strict
namespace={namespace}
slug={organizationPage.slug}
fullWidth={true}
params={{
latestNewsSliceColorVariant:
organizationPage.theme === 'landing_page' ? 'blue' : 'default',
}}
/>
))}
{organizationPage?.bottomSlices.map((slice) => {
if (
(organizationPage.slug === 'stafraent-island' ||
organizationPage.slug === 'digital-iceland') &&
slice.__typename === 'LatestNewsSlice'
) {
return (
<Box paddingTop={[5, 5, 8]} paddingBottom={[2, 2, 5]}>
<DigitalIcelandLatestNewsSlice
slice={slice}
slug={organizationPage.slug}
/>
</Box>
)
}
return (
<SliceMachine
key={slice.id}
slice={slice}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore make web strict
namespace={namespace}
slug={organizationPage.slug}
fullWidth={true}
params={{
latestNewsSliceColorVariant:
organizationPage.theme === 'landing_page'
? 'blue'
: 'default',
}}
/>
)
})}
</Stack>
{organizationPage?.theme === 'landing_page' && (
<LandingPageFooter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ import {
getRightsCode,
transformApplicationToParentalLeaveDTO,
getFromDate,
isPreBirthRight,
isFixedRight,
} from './parental-leave.utils'
import {
generateAssignEmployerApplicationSms,
Expand Down Expand Up @@ -848,9 +848,9 @@ export class ParentalLeaveService extends BaseTemplateApiService {
): Period[] {
return periods.map((period, index) => {
const isFirstPeriod = index === 0
const preBirthRight = isPreBirthRight(period.rightCodePeriod)
const fixedRight = isFixedRight(period.rightCodePeriod)
return {
rightsCodePeriod: preBirthRight ? period.rightCodePeriod : rights,
rightsCodePeriod: fixedRight ? period.rightCodePeriod : rights,
from: getFromDate(
isFirstPeriod,
isActualDateOfBirth,
Expand Down Expand Up @@ -880,7 +880,7 @@ export class ParentalLeaveService extends BaseTemplateApiService {
const rightsDTO = await this.createRightsDTO(application)
const rightUnits = rightsDTO.map(({ rightsUnit }) => rightsUnit)
const rights = rightUnits
.filter((rightUnit) => !isPreBirthRight(rightUnit))
.filter((rightUnit) => !isFixedRight(rightUnit))
.join(',')
const isActualDateOfBirth =
firstPeriodStart === StartDateOptions.ACTUAL_DATE_OF_BIRTH
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -550,9 +550,9 @@ export const getFromDate = (
: period.startDate
}

export const isPreBirthRight = (right: string | undefined) => {
export const isFixedRight = (right: string | undefined) => {
if (!right) {
return false
}
return ['VEIKMEÐG', 'ÖRYGGI-L'].includes(right)
return ['VEIKMEÐG', 'ÖRYGGI-L', 'DVALSTYRK', 'DVAL.FJÖL'].includes(right)
}
Original file line number Diff line number Diff line change
Expand Up @@ -122,23 +122,20 @@ export const restructureVMSTPeriods = (context: ApplicationContext) => {
useLength = periods[0].useLength ?? NO
}

if (!period.rightsCodePeriod.includes('DVAL')) {
// API returns multiple rightsCodePeriod in string ('M-L-GR, M-FS')
const rightsCodePeriod = period.rightsCodePeriod.split(',')[0]
const obj = {
startDate: period.from,
endDate: period.to,
ratio: period.ratio.split(',')[0],
rawIndex: index,
firstPeriodStart: firstPeriodStart,
useLength: useLength as YesOrNo,
rightCodePeriod: rightsCodePeriod,
daysToUse: period.days,
paid: period.paid,
approved: period.approved,
}
newPeriods.push(obj)
const rightsCodePeriod = period.rightsCodePeriod.split(',')[0]
const obj = {
startDate: period.from,
endDate: period.to,
ratio: period.ratio.split(',')[0],
rawIndex: index,
firstPeriodStart: firstPeriodStart,
useLength: useLength as YesOrNo,
rightCodePeriod: rightsCodePeriod,
daysToUse: period.days,
paid: period.paid,
approved: period.approved,
}
newPeriods.push(obj)
})

return newPeriods
Expand Down
Loading

0 comments on commit 4f09e61

Please sign in to comment.