-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAudienceChannels.tsx
46 lines (40 loc) · 1.55 KB
/
AudienceChannels.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import { BodyShort } from '@navikt/ds-react';
import { LenkeBase } from 'components/_common/lenke/LenkeBase';
import { AudienceContact } from 'types/content-props/office-details-props';
import { officeDetailsFormatPhoneNumber } from 'components/pages/office-page/office-details/utils';
import styles from './AudienceChannels.module.scss';
type AudienceChannelsProps = {
publikumskanaler: AudienceContact[];
};
export const AudienceChannels = ({ publikumskanaler }: AudienceChannelsProps) => {
const buildChannel = (channel: AudienceContact) => {
return (
<BodyShort key={channel.sortOrder} className={styles.audienceChannels}>
{`${channel.beskrivelse}: `}
{channel.epost && (
<LenkeBase href={`mailto:${channel.epost}`}>{channel.epost}</LenkeBase>
)}
{channel.telefon && (
<LenkeBase href={`tel:${channel.telefon}`}>
{officeDetailsFormatPhoneNumber(channel.telefon)}
</LenkeBase>
)}
</BodyShort>
);
};
if (publikumskanaler.length === 0) {
return null;
}
if (publikumskanaler.length === 1) {
return <>{buildChannel(publikumskanaler[0])}</>;
}
return (
<ul className={styles.audienceChannels}>
{publikumskanaler.map((kanal) => (
<li className={styles.channelItem} key={kanal.sortOrder}>
{buildChannel(kanal)}
</li>
))}
</ul>
);
};