Skip to content

Commit

Permalink
chore: coderabbit improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
thorkellmani committed Aug 12, 2024
1 parent 8b50893 commit 9e1c392
Show file tree
Hide file tree
Showing 3 changed files with 215 additions and 229 deletions.
39 changes: 17 additions & 22 deletions libs/api/domains/license-service/src/lib/mappers/passportMapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,29 +69,24 @@ export class PassportMapper implements GenericLicenseMapper {
IdentityDocument | IdentityDocumentChild
>

const mappedLicenses: Array<GenericLicenseMappedPayloadResponse> = []
typedPayload.forEach((t) => {
if (isChildPassport(t)) {
const childDocuments = this.mapChildDocument(t, formatMessage)
childDocuments.forEach((document) => {
mappedLicenses.push({
licenseName: formatMessage(m.passport),
type: 'child',
payload: document,
})
})
} else {
mappedLicenses.push({
licenseName: formatMessage(m.passport),
type: 'user',
payload: this.mapDocument(t, formatMessage),
const mappedLicenses: Array<GenericLicenseMappedPayloadResponse> =
typedPayload
.map((t) => {
if (isChildPassport(t)) {
return this.mapChildDocument(t, formatMessage).map((document) => ({
licenseName: formatMessage(m.passport),
type: 'child' as const,
payload: document,
}))
} else {
return {
licenseName: formatMessage(m.passport),
type: 'user' as const,
payload: this.mapDocument(t, formatMessage),
}
}
})
}
})

if (!mappedLicenses.some((m) => m.type === 'user')) {
mappedLicenses.push(emptyPassport)
}
.flat()

return mappedLicenses
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
Pagination,
} from '@island.is/island-ui/core'
import { UserInfoLine } from '@island.is/service-portal/core'
import { useState } from 'react'
import { useMemo, useState } from 'react'
import ExpandableLine from '../ExpandableLine/ExpandableLine'

const tagColorMap: Record<GenericUserLicenseDataFieldTagColor, string> = {
Expand All @@ -35,174 +35,170 @@ export const LicenseDataFields = ({
const [page, setPage] = useState(1)
const pageSize = 15

if (!fields || fields.length === 0) {
return null
}

return (
<>
{fields.map((field, i) => {
if (field.hideFromServicePortal) return undefined
return (
<Box key={`data-field-${i}`}>
{field.type === GenericLicenseDataFieldType.Value && (
<>
<UserInfoLine
title={field.name ?? ''}
label={field.label ?? ''}
editLink={
field.link
? {
url: field.link.value ?? '',
title: field.link.label ?? undefined,
}
: undefined
}
renderContent={
field.value
? () => (
<Box display="flex" alignItems="center">
<Text>{field.value}</Text>
const mappedFields = useMemo(() => {
return fields.map((field, i) => {
if (field.hideFromServicePortal) return undefined
return (
<Box key={`data-field-${i}`}>
{field.type === GenericLicenseDataFieldType.Value && (
<>
<UserInfoLine
title={field.name ?? ''}
label={field.label ?? ''}
editLink={
field.link
? {
url: field.link.value ?? '',
title: field.link.label ?? undefined,
}
: undefined
}
renderContent={
field.value
? () => (
<Box display="flex" alignItems="center">
<Text>{field.value}</Text>
<Box
marginLeft={2}
display="flex"
flexDirection="row"
alignItems="center"
textAlign="center"
>
<Box
marginLeft={2}
marginRight={1}
display="flex"
flexDirection="row"
alignItems="center"
justifyContent="center"
textAlign="center"
>
<Box
marginRight={1}
display="flex"
alignItems="center"
justifyContent="center"
textAlign="center"
>
{field.tag?.icon && field.tag?.iconColor && (
<Icon
icon={
field.tag.icon ===
GenericUserLicenseDataFieldTagType.closeCircle
? 'closeCircle'
: 'checkmarkCircle'
}
color={getTagColor(field.tag.iconColor)}
type="filled"
/>
)}
</Box>
{field.tag?.text && (
<Text variant="eyebrow">
{field.tag.iconText}
</Text>
{field.tag?.icon && field.tag?.iconColor && (
<Icon
icon={
field.tag.icon ===
GenericUserLicenseDataFieldTagType.closeCircle
? 'closeCircle'
: 'checkmarkCircle'
}
color={getTagColor(field.tag.iconColor)}
type="filled"
/>
)}
</Box>
{field.tag?.text && (
<Text variant="eyebrow">
{field.tag.iconText}
</Text>
)}
</Box>
)
: undefined
}
paddingY={3}
/>
<Divider />
</>
)}
{field.type === GenericLicenseDataFieldType.Category && (
<ExpandableLine
title={field.name ?? ''}
data={field.fields ?? []}
description={field.label ?? undefined}
type={licenseType}
</Box>
)
: undefined
}
paddingY={3}
/>
)}
{field.type === 'Group' && (
<>
<Text
variant="eyebrow"
color="purple400"
paddingBottom={2}
paddingTop={7}
>
{field.label}
</Text>
<Divider />
</>
)}
{field.type === GenericLicenseDataFieldType.Category && (
<ExpandableLine
title={field.name ?? ''}
data={field.fields ?? []}
description={field.label ?? undefined}
type={licenseType}
/>
)}
{field.type === 'Group' && (
<>
<Text
variant="eyebrow"
color="purple400"
paddingBottom={2}
paddingTop={7}
>
{field.label}
</Text>

<LicenseDataFields
fields={field.fields ?? []}
licenseType={licenseType}
/>
</>
)}
{field.type === GenericLicenseDataFieldType.Table && (
<>
<Text
variant="eyebrow"
color="purple400"
paddingBottom={2}
paddingTop={7}
>
{field.label}
</Text>
<T.Table>
<T.Head>
<T.Row>
{/* Double mapping needed to get to nested header and values */}
{field.fields?.map((x, xIndex) => {
return x?.fields?.map((y, yIndex) => {
return (
xIndex === 0 && (
<T.HeadData
key={`license-table-head-item-${xIndex}-${yIndex}`}
>
{y.label}
</T.HeadData>
)
)
})
})}
</T.Row>
</T.Head>
<T.Body>
{field.fields
?.slice((page - 1) * pageSize, page * pageSize)
.map((x, xIndex) => {
<LicenseDataFields
fields={field.fields ?? []}
licenseType={licenseType}
/>
</>
)}
{field.type === GenericLicenseDataFieldType.Table && (
<>
<Text
variant="eyebrow"
color="purple400"
paddingBottom={2}
paddingTop={7}
>
{field.label}
</Text>
<T.Table>
<T.Head>
<T.Row>
{/* Double mapping needed to get to nested header and values */}
{field.fields?.map((x, xIndex) => {
return x?.fields?.map((y, yIndex) => {
return (
<T.Row key={`license-table-item-row-${xIndex}`}>
{x.fields?.map((y, yIndex) => {
return (
<T.Data
key={`license-table-item-${xIndex}-${yIndex}`}
>
{y.value}
</T.Data>
)
})}
</T.Row>
xIndex === 0 && (
<T.HeadData
key={`license-table-head-item-${xIndex}-${yIndex}`}
>
{y.label}
</T.HeadData>
)
)
})}
</T.Body>
</T.Table>
{field.fields && field.fields.length > pageSize && (
<Box marginY={3}>
<Pagination
totalItems={field.fields.length}
itemsPerPage={pageSize}
page={page}
renderLink={(page, className, children) => (
<Box
cursor="pointer"
className={className}
onClick={() => setPage(page)}
component="button"
>
{children}
</Box>
)}
/>
</Box>
)}
</>
)}
</Box>
)
})}
</>
)
})
})}
</T.Row>
</T.Head>
<T.Body>
{field.fields
?.slice((page - 1) * pageSize, page * pageSize)
.map((x, xIndex) => {
return (
<T.Row key={`license-table-item-row-${xIndex}`}>
{x.fields?.map((y, yIndex) => {
return (
<T.Data
key={`license-table-item-${xIndex}-${yIndex}`}
>
{y.value}
</T.Data>
)
})}
</T.Row>
)
})}
</T.Body>
</T.Table>
{field.fields && field.fields.length > pageSize && (
<Box marginY={3}>
<Pagination
totalItems={field.fields.length}
itemsPerPage={pageSize}
page={page}
renderLink={(page, className, children) => (
<Box
cursor="pointer"
className={className}
onClick={() => setPage(page)}
component="button"
>
{children}
</Box>
)}
/>
</Box>
)}
</>
)}
</Box>
)
})
}, [fields, licenseType, page])

return mappedFields
}
Loading

0 comments on commit 9e1c392

Please sign in to comment.