Skip to content

Commit

Permalink
Merge pull request #329 from navikt/robust_visning_telefonnummer
Browse files Browse the repository at this point in the history
Vis telefonnummer selv om prioritet 1 mangler
  • Loading branch information
klaramargrethehelgemo committed Oct 24, 2023
2 parents fb2f69c + b9760a0 commit 1872752
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 45 deletions.
4 changes: 1 addition & 3 deletions src/api/veilarbpersonflatefs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@ import { AxiosPromise } from 'axios';
import { axiosInstance } from './utils';

export const PILOT_TOGGLE = 'pto.vedtaksstotte.pilot';
export const VEILARBDETALJERFS_ENABLED = 'veilarbpersonflatefs.veilarbdetaljerfs-enabled';
export const ALL_TOGGLES = [PILOT_TOGGLE, VEILARBDETALJERFS_ENABLED];
export const ALL_TOGGLES = [PILOT_TOGGLE];

export interface FeatureToggles {
[PILOT_TOGGLE]: boolean;
[VEILARBDETALJERFS_ENABLED]: boolean;
}

export function fetchFeaturesToggles(): AxiosPromise<FeatureToggles> {
Expand Down
22 changes: 12 additions & 10 deletions src/component/personinfo/personinfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,22 @@ import ArbeidslisteKnapp from '../arbeidsliste/arbeidsliste-knapp';
import { KopierKnappTekst } from '../components/kopier-knapp/kopier-knapp';
import { useAppStore } from '../../store/app-store';
import { useDataStore } from '../../store/data-store';
import { selectKanLeggeIArbeidsListe, selectKanRedigereArbeidsliste, selectSammensattNavn } from '../../util/selectors';
import {
selectKanLeggeIArbeidsListe,
selectKanRedigereArbeidsliste,
selectSammensattNavn,
selectTelefonnummer
} from '../../util/selectors';
import { useModalStore } from '../../store/modal-store';
import './personinfo.less';
import { logMetrikk } from '../../util/logger';
import { formaterTelefonnummer } from '../../util/utils';
import { StringOrNothing } from '../../util/type/utility-types';
import { VEILARBDETALJERFS_ENABLED } from '../../api/veilarbpersonflatefs';
import { Label } from '@navikt/ds-react';

function PersonInfo() {
const { brukerFnr } = useAppStore();
const { personalia, arbeidsliste, oppfolgingsstatus, innloggetVeileder, features } = useDataStore();
const { personalia, arbeidsliste, oppfolgingsstatus, innloggetVeileder } = useDataStore();
const { showArbeidslisteModal } = useModalStore();

const arbeidslisteikon = arbeidsliste?.kategori;
Expand All @@ -29,7 +33,7 @@ function PersonInfo() {
logMetrikk('veilarbvisittkortfs.metrikker.visittkort.arbeidsliste-ikon', { kategori: arbeidslisteikon });
showArbeidslisteModal();
};
const uformattertTelefon: StringOrNothing = personalia?.telefon?.find(entry => entry.prioritet === '1')?.telefonNr;
const uformattertTelefon: StringOrNothing = selectTelefonnummer(personalia);
const telefon: string = formaterTelefonnummer(uformattertTelefon);

return (
Expand All @@ -43,13 +47,11 @@ function PersonInfo() {
kanRedigereArbeidsliste={kanRedigereArbeidsliste}
/>
<KopierKnappTekst kopierTekst={brukerFnr} visTekst={`F.nr.: ${brukerFnr}`} />
{features[VEILARBDETALJERFS_ENABLED] && <Label>/</Label>}
{uformattertTelefon && features[VEILARBDETALJERFS_ENABLED] && (
<KopierKnappTekst kopierTekst={uformattertTelefon} visTekst={`Tlf.: ${telefon}`} />
)}
{!uformattertTelefon && features[VEILARBDETALJERFS_ENABLED] && (
<Label className="uten-telefon">Tlf.: -</Label>
{<Label>/</Label>}
{uformattertTelefon && (
<KopierKnappTekst kopierTekst={telefon.replace(/\s/g, '')} visTekst={`Tlf.: ${telefon}`} />
)}
{!uformattertTelefon && <Label className="uten-telefon">Tlf.: -</Label>}
</div>
</div>
);
Expand Down
44 changes: 21 additions & 23 deletions src/mock/api/veilarbperson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,33 @@ import {
RegistreringData,
SpraakTolk,
VergeOgFullmakt
} from "../../api/veilarbperson";
} from '../../api/veilarbperson';
import { defaultNetworkResponseDelay } from '../config';

const mockHarBruktNivaa4: HarBruktNivaa4Type = {
harbruktnivaa4: false
};

const mockTelefon: PersonaliaTelefon[] =
[
{
prioritet: '1',
telefonNr: '+4746333333',
registrertDato: '10.07.2008',
master: 'FREG'

},
{
prioritet: '2',
telefonNr: '80022222',
registrertDato: '10.04.2010',
master: 'KRR'
},
{
prioritet: '3',
telefonNr: '44222444',
registrertDato: null,
master: 'PDL'
}
]
const mockTelefon: PersonaliaTelefon[] = [
{
prioritet: '2',
telefonNr: '0047 463 33 333',
registrertDato: '10.07.2008',
master: 'FREG'
},
{
prioritet: '3',
telefonNr: '+47 80 02 22 22',
registrertDato: '10.04.2010',
master: 'KRR'
},
{
prioritet: '1',
telefonNr: '+213 207 860 11 29',
registrertDato: null,
master: 'PDL'
}
];

const mockPersonaliaV2: Personalia = {
fornavn: 'GRØNN',
Expand Down
5 changes: 2 additions & 3 deletions src/mock/api/veilarbpersonflatefs.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { rest } from 'msw';
import { RequestHandlersList } from 'msw/lib/types/setupWorker/glossary';
import { FeatureToggles, PILOT_TOGGLE, VEILARBDETALJERFS_ENABLED } from '../../api/veilarbpersonflatefs';
import { FeatureToggles, PILOT_TOGGLE } from '../../api/veilarbpersonflatefs';
import { defaultNetworkResponseDelay } from '../config';

const mockFeatures: FeatureToggles = {
[PILOT_TOGGLE]: true,
[VEILARBDETALJERFS_ENABLED]: true
[PILOT_TOGGLE]: true
};

export const veilarbpersonflatefsHandlers: RequestHandlersList = [
Expand Down
10 changes: 9 additions & 1 deletion src/util/selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Oppfolging, OppfolgingStatus, TilgangTilBrukersKontor } from '../api/ve
import { Personalia } from '../api/veilarbperson';
import { Arbeidsliste } from '../api/veilarbportefolje';
import { VeilederData } from '../api/veilarbveileder';
import { OrNothing } from './type/utility-types';
import { OrNothing, StringOrNothing } from './type/utility-types';

export function selectSammensattNavn(personalia: Personalia | undefined): string {
if (!personalia) return '';
Expand Down Expand Up @@ -129,3 +129,11 @@ export function selectKanTildeleVeileder(
if (!oppfolging || !tilgangTilBrukersKontor) return false;
return oppfolging.underOppfolging && tilgangTilBrukersKontor.tilgangTilBrukersKontor;
}

export function selectTelefonnummer(personalia: Personalia | undefined): StringOrNothing {
const telefonEntries = personalia?.telefon ?? [];
// Filtrer bort tomme telefonnumre og sorter på prioritet, velger det med lavest prioritet
return telefonEntries
.filter(tlfEntry => tlfEntry.telefonNr)
.sort((a, b) => Number(a.prioritet) - Number(b.prioritet))[0]?.telefonNr;
}
14 changes: 9 additions & 5 deletions src/util/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { AxiosResponse } from 'axios';
import { PersonaliaTelefon } from '../api/veilarbperson';
import { StringOrNothing } from './type/utility-types';

const emdashCharacterCode = 8212;
Expand Down Expand Up @@ -68,19 +67,23 @@ export function isDefined(subject: any): boolean {
return subject !== undefined && subject !== null;
}

export function formaterTelefonnummer(telefon: PersonaliaTelefon | undefined | string) {
export function formaterTelefonnummer(telefon: StringOrNothing) {
let norskTelefonnummer = false;

if (!telefon) {
return EMDASH;
}
let telefonNr = telefon?.toString();
let telefonNr = telefon?.toString().replace(/\s/g, '');
let landkode = '';

if (telefonNr?.startsWith('0047')) {
landkode = '+47';
telefonNr = telefonNr.slice(4);
norskTelefonnummer = true;
} else if (telefonNr?.startsWith('+47')) {
landkode = telefonNr.slice(0, 3);
telefonNr = telefonNr.slice(3);
norskTelefonnummer = true;
}

const tall = telefonNr?.split('');
Expand All @@ -89,8 +92,9 @@ export function formaterTelefonnummer(telefon: PersonaliaTelefon | undefined | s
while (tall?.length) {
splittTall.push(tall.splice(0, 2).join(''));
}

return `${landkode} ${splittTall.join(' ')}`;
if (norskTelefonnummer) {
return splittTall.join(' ');
} else return `${landkode} ${splittTall.join(' ')}`;
}

export type DeploymentEnvironment = 'local' | 'development' | 'production';

0 comments on commit 1872752

Please sign in to comment.