|
1 |
| -interface TogglesConfig { |
2 |
| - visVeileder: boolean; |
| 1 | +export interface DecoratorProps { |
| 2 | + enhet?: string | undefined; // Konfigurasjon av enhet-kontekst |
| 3 | + accessToken?: string | undefined; // Manuell innsending av JWT, settes som Authorization-header. Om null sendes cookies vha credentials: 'include' |
| 4 | + fnr?: string | undefined; // Konfigurasjon av fødselsnummer-kontekst |
| 5 | + 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. |
| 6 | + enableHotkeys?: boolean | undefined; // Aktivere hurtigtaster |
| 7 | + fetchActiveEnhetOnMount?: boolean | undefined; // Om enhet er undefined fra container appen, og denne er satt til true, henter den sist aktiv enhet og bruker denne. |
| 8 | + fetchActiveUserOnMount?: boolean | undefined; // Om fnr er undefined fra container appen, og denne er satt til true for at den skal hente siste aktiv fnr. |
| 9 | + onEnhetChanged: (enhetId?: string | null, enhet?: Enhet) => void; // Kalles når enheten endres |
| 10 | + onFnrChanged: (fnr?: string | null) => void; // Kalles når fnr enheten endres |
| 11 | + 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 |
| 12 | + appName: string; // Navn på applikasjonen |
| 13 | + hotkeys?: Hotkey[]; // Konfigurasjon av hurtigtaster |
| 14 | + markup?: Markup; // Egen HTML |
| 15 | + showEnheter: boolean; // Vis enheter |
| 16 | + showSearchArea: boolean; // Vis søkefelt |
| 17 | + showHotkeys: boolean; // Vis hurtigtaster |
| 18 | + environment: Environment; // Miljø som skal brukes. |
| 19 | + urlFormat: UrlFormat; // URL format |
| 20 | + 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 |
3 | 21 | }
|
4 | 22 |
|
5 |
| -interface Markup { |
6 |
| - etterSokefelt?: string; |
| 23 | +export interface Markup { |
| 24 | + etterSokefelt?: string; // Gir muligheten for sende inn egen html som blir en del av dekoratøren |
7 | 25 | }
|
8 | 26 |
|
9 |
| -export interface ControlledContextvalue<T> extends BaseContextvalue<T> { |
10 |
| - value?: string; |
11 |
| -} |
12 |
| -interface UncontrolledContextvalue<T> extends BaseContextvalue<T> { |
13 |
| - initialValue?: string; |
| 27 | +export interface Enhet { |
| 28 | + readonly enhetId: string; |
| 29 | + readonly navn: string; |
14 | 30 | }
|
15 | 31 |
|
16 |
| -interface BaseContextvalue<T> { |
17 |
| - display: T; |
18 |
| - onChange(value?: string): void; |
19 |
| - skipModal?: boolean; |
20 |
| - ignoreWsEvents?: boolean; |
21 |
| -} |
| 32 | +// Miljø |
| 33 | +export type Environment = |
| 34 | + | 'q0' |
| 35 | + | 'q1' |
| 36 | + | 'q2' |
| 37 | + | 'q3' |
| 38 | + | 'q4' |
| 39 | + | 'prod' |
| 40 | + | 'local' |
| 41 | + | 'mock'; |
22 | 42 |
|
23 |
| -export type Contextvalue<T> = |
24 |
| - | ControlledContextvalue<T> |
25 |
| - | UncontrolledContextvalue<T>; |
| 43 | +export type UrlFormat = 'LOCAL' | 'NAV_NO' | 'ANSATT'; // UrlFormat. Brukes om proxy ikke er satt & i url til websocket. |
26 | 44 |
|
27 |
| -export enum EnhetDisplay { |
28 |
| - ENHET = 'ENHET', |
29 |
| - ENHET_VALG = 'ENHET_VALG', |
| 45 | +export interface HotkeyObject { |
| 46 | + char: string; |
| 47 | + altKey?: boolean; |
| 48 | + ctrlKey?: boolean; |
| 49 | + metaKey?: boolean; |
| 50 | + shiftKey?: boolean; |
30 | 51 | }
|
31 | 52 |
|
32 |
| -export enum FnrDisplay { |
33 |
| - SOKEFELT = 'SOKEFELT', |
| 53 | +export interface HotkeyDescription { |
| 54 | + key: HotkeyObject; |
| 55 | + description: string; |
| 56 | + forceOverride?: boolean; |
34 | 57 | }
|
35 | 58 |
|
36 |
| -type EnhetContextvalue = Contextvalue<EnhetDisplay>; |
37 |
| -type FnrContextvalue = Contextvalue<FnrDisplay>; |
38 |
| -type ProxyConfig = boolean | string; |
| 59 | +export interface ActionHotKey extends HotkeyDescription { |
| 60 | + action(event: KeyboardEvent): void; |
| 61 | +} |
39 | 62 |
|
40 |
| -export interface DecoratorProps { |
41 |
| - appname: string; |
42 |
| - fnr?: FnrContextvalue; |
43 |
| - enhet?: EnhetContextvalue; |
44 |
| - toggles?: TogglesConfig; |
45 |
| - markup?: Markup; |
46 |
| - useProxy?: ProxyConfig; |
47 |
| - accessToken?: string; |
| 63 | +export interface DocumentingHotKey extends HotkeyDescription { |
| 64 | + documentationOnly: boolean; |
48 | 65 | }
|
| 66 | + |
| 67 | +export type Hotkey = ActionHotKey | DocumentingHotKey; |
0 commit comments