|
1 |
| -export interface DecoratorProps { |
2 |
| - appname: string; // Navn på applikasjon |
3 |
| - fnr?: FnrContextvalue; // Konfigurasjon av fødselsnummer-kontekst |
4 |
| - enhet?: EnhetContextvalue; // Konfigurasjon av enhet-kontekst |
5 |
| - toggles?: TogglesConfig; // Konfigurasjon av hvilke elementer som skal vises i dekoratøren |
6 |
| - markup?: Markup; // Ekstra innhold i dekoratøren, kan brukes om man trenger å legge en knapp innenfor dekoratøren |
7 |
| - |
8 |
| - /* Manuell overstyring av urlene til BFFs. |
9 |
| - Gjør alle kall til relativt path, og trenger derfor proxy oppsett. Default: false */ |
10 |
| - useProxy?: boolean; |
11 |
| - |
12 |
| - /* Manuell innsending av JWT, settes som Authorization-header. |
13 |
| - Om null sendes cookies vha credentials: 'include' */ |
14 |
| - accessToken?: string; |
15 |
| -} |
| 1 | +// OBS: Innholder i denne filen er kopiert fra https://github.com/navikt/internarbeidsflatedecorator |
16 | 2 |
|
17 |
| -export interface TogglesConfig { |
18 |
| - visVeileder?: boolean; // Styrer om man skal vise informasjon om innlogget veileder |
| 3 | +export interface DecoratorProps { |
| 4 | + enhet?: string | undefined; // Konfigurasjon av enhet-kontekst |
| 5 | + accessToken?: string | undefined; // Manuell innsending av JWT, settes som Authorization-header. Om null sendes cookies vha credentials: 'include' |
| 6 | + fnr?: string | undefined; // Konfigurasjon av fødselsnummer-kontekst |
| 7 | + userKey?: string | undefined; // Om man ikke ønsker å bruke fnr i urler, kan andre apper kalle contextholder for å generere en midlertidig kode. Hvis App A skal navigere til App B som har dekoratøren, må App A først sende en post request til /fnr-code/generate med {fnr: string} i bodyen, dette returnerer {fnr: string, code: string} til App A. App A kan så navigere til App B og sende med denne koden. App B kan så sende den koden inn til dekoratøren i userKey propen og så henter dekoratøren fnr for den koden fra contextholderen. |
| 8 | + enableHotkeys?: boolean | undefined; // Aktivere hurtigtaster |
| 9 | + fetchActiveEnhetOnMount?: boolean | undefined; // Om enhet er undefined fra container appen, og denne er satt til true, henter den sist aktiv enhet og bruker denne. |
| 10 | + fetchActiveUserOnMount?: boolean | undefined; // Om fnr er undefined fra container appen, og denne er satt til true for at den skal hente siste aktiv fnr. |
| 11 | + onEnhetChanged: (enhetId?: string | null, enhet?: Enhet) => void; // Kalles når enheten endres |
| 12 | + onFnrChanged: (fnr?: string | null) => void; // Kalles når fnr enheten endres |
| 13 | + onLinkClick?: (link: { text: string; url: string }) => void; // Kan brukes for å legge til callbacks ved klikk på lenker i menyen. Merk at callbacken ikke kan awaites og man må selv håndtere at siden lukkes. Nyttig for å f.eks tracke navigasjon events i amplitude |
| 14 | + appName: string; // Navn på applikasjonen |
| 15 | + hotkeys?: Hotkey[]; // Konfigurasjon av hurtigtaster |
| 16 | + markup?: Markup; // Egen HTML |
| 17 | + showEnheter: boolean; // Vis enheter |
| 18 | + showSearchArea: boolean; // Vis søkefelt |
| 19 | + showHotkeys: boolean; // Vis hurtigtaster |
| 20 | + environment: Environment; // Miljø som skal brukes. |
| 21 | + urlFormat: UrlFormat; // URL format |
| 22 | + proxy?: string | undefined; // Manuell overstyring av urlene til BFFs. Gjør alle kall til relativt path hvis true, og bruker verdien som domene om satt til en string. Default: false |
19 | 23 | }
|
20 | 24 |
|
21 | 25 | export interface Markup {
|
22 | 26 | etterSokefelt?: string; // Gir muligheten for sende inn egen html som blir en del av dekoratøren
|
23 | 27 | }
|
24 | 28 |
|
25 |
| -/* Fnr/Enhet-konfiguration støttet både `Controlled` og `Uncontrolled` operasjon. |
26 |
| -// Ved bruk av `Controlled` må konsument-applikasjonen selv ta ansvar for oppdatering av `value` etter enhver `onChange` |
27 |
| - Dette er i motsetning til `Uncontrolled`, hvor dette håndteres av dekoratøren. |
28 |
| - Og alt konsument-applikasjonen trenger å gjøre er å følge med på `onChange`. */ |
29 |
| - |
30 |
| -export interface ControlledContextvalue<T> extends BaseContextvalue<T> { |
31 |
| - value: string | null; |
| 29 | +export interface Enhet { |
| 30 | + readonly enhetId: string; |
| 31 | + readonly navn: string; |
32 | 32 | }
|
33 | 33 |
|
34 |
| -export interface UncontrolledContextvalue<T> extends BaseContextvalue<T> { |
35 |
| - initialValue: string | null; |
36 |
| -} |
| 34 | +// Miljø |
| 35 | +export type Environment = 'q0' | 'q1' | 'q2' | 'q3' | 'q4' | 'prod' | 'local' | 'mock'; |
| 36 | + |
| 37 | +export type UrlFormat = 'LOCAL' | 'NAV_NO' | 'ANSATT'; // UrlFormat. Brukes om proxy ikke er satt & i url til websocket. |
37 | 38 |
|
38 |
| -export interface BaseContextvalue<T> { |
39 |
| - display: T; |
40 |
| - skipModal?: boolean; |
41 |
| - ignoreWsEvents?: boolean; |
42 |
| - onChange(value: string | null): void; |
| 39 | +export interface HotkeyObject { |
| 40 | + char: string; |
| 41 | + altKey?: boolean; |
| 42 | + ctrlKey?: boolean; |
| 43 | + metaKey?: boolean; |
| 44 | + shiftKey?: boolean; |
43 | 45 | }
|
44 | 46 |
|
45 |
| -export type Contextvalue<T> = ControlledContextvalue<T> | UncontrolledContextvalue<T>; |
| 47 | +export interface HotkeyDescription { |
| 48 | + key: HotkeyObject; |
| 49 | + description: string; |
| 50 | + forceOverride?: boolean; |
| 51 | +} |
46 | 52 |
|
47 |
| -export enum EnhetDisplay { |
48 |
| - ENHET = 'ENHET', |
49 |
| - ENHET_VALG = 'ENHET_VALG', |
| 53 | +export interface ActionHotKey extends HotkeyDescription { |
| 54 | + action(event: KeyboardEvent): void; |
50 | 55 | }
|
51 | 56 |
|
52 |
| -export enum FnrDisplay { |
53 |
| - SOKEFELT = 'SOKEFELT', |
| 57 | +export interface DocumentingHotKey extends HotkeyDescription { |
| 58 | + documentationOnly: boolean; |
54 | 59 | }
|
55 | 60 |
|
56 |
| -export type EnhetContextvalue = Contextvalue<EnhetDisplay>; |
57 |
| -export type FnrContextvalue = Contextvalue<FnrDisplay>; |
| 61 | +export type Hotkey = ActionHotKey | DocumentingHotKey; |
0 commit comments