Skip to content

Commit 657443c

Browse files
authored
Merge pull request #430 from navikt/dev
[PROD] Url fikser, ansatt.nav.no url & hotkey fikser
2 parents 1554ce9 + 0c0aa10 commit 657443c

File tree

12 files changed

+69
-64
lines changed

12 files changed

+69
-64
lines changed

.github/workflows/main-v3.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
team: personoversikt
4444
source: ./packages/internarbeidsflate-decorator-v3/dist/
4545
destination: /internarbeidsflate-decorator-v3/dev/latest
46-
no_cache_paths: 'internarbeidsflate-decorator-v3/dev/latest/dist/asset-manifest.json,internarbeidsflate-decorator-v3/dev/latest/dist/bundle.js,internarbeidsflate-decorator-v3/dev/latest/dist/index.css'
46+
cache_invalidation: true
4747
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
4848
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
4949

@@ -54,6 +54,6 @@ jobs:
5454
team: personoversikt
5555
source: ./packages/internarbeidsflate-decorator-v3/dist/
5656
destination: /internarbeidsflate-decorator-v3/prod/latest
57-
no_cache_paths: 'internarbeidsflate-decorator-v3/prod/latest/dist/asset-manifest.json,internarbeidsflate-decorator-v3/prod/latest/dist/bundle.js,internarbeidsflate-decorator-v3/prod/latest/dist/index.css'
57+
cache_invalidation: true
5858
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
5959
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export interface Markup {
9999
etterSokefelt?: string; // Gir muligheten for sende inn egen html som blir en del av dekoratøren
100100
}
101101

102-
// Miljø. Foreløpig er kun q0 og q1 støttet.
102+
// Miljø
103103
export type Environment =
104104
| 'q0'
105105
| 'q1'
@@ -110,7 +110,7 @@ export type Environment =
110110
| 'local'
111111
| 'mock';
112112

113-
export type UrlFormat = 'LOCAL' | 'ADEO' | 'NAV_NO'; // UrlFormat. Brukes om proxy ikke er satt.
113+
export type UrlFormat = 'LOCAL' | 'ADEO' | 'NAV_NO' | 'ANSATT'; // UrlFormat. Brukes om proxy ikke er satt & i url til websocket.
114114
```
115115

116116
# Henvendelser

bun.lockb

464 Bytes
Binary file not shown.

packages/internarbeidsflate-decorator-v3/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@
4646
"react-dom": "^18.2.0"
4747
},
4848
"dependencies": {
49-
"@navikt/aksel-icons": "^6.4.1",
50-
"@navikt/ds-css": "^6.4.1",
51-
"@navikt/ds-react": "^6.4.1",
52-
"@navikt/ds-tailwind": "^6.4.1",
53-
"@navikt/ds-tokens": "^6.4.1",
49+
"@navikt/aksel-icons": "^6.8.0",
50+
"@navikt/ds-css": "^6.8.0",
51+
"@navikt/ds-react": "^6.8.0",
52+
"@navikt/ds-tailwind": "^6.8.0",
53+
"@navikt/ds-tokens": "^6.8.0",
5454
"@tanstack/query-core": "^5.29.0",
5555
"classnames": "^2.5.1",
5656
"use-sync-external-store": "^1.2.0",

packages/internarbeidsflate-decorator-v3/src/components/Banner.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React from 'react';
22
import AppName from './AppName';
3-
import Enhet from './Enhet';
43
import EnhetVelger from './EnhetVelger';
54
import HotkeyMenuElement from './HotkeyMenuElement';
65
import Markup from './Markup';
@@ -14,8 +13,7 @@ const Banner: React.FC = () => {
1413
<div className="dr-max-w-full dr-mx-auto">
1514
<div className="dr-flex dr-flex-wrap dr-items-center dr-justify-evenly dr-gap-1">
1615
<AppName />
17-
<div className="dr-flex dr-flex-wrap dr-flex-1 dr-gap-4 xl:dr-gap-8 dr-w-full dr-justify-center dr-items-center">
18-
<Enhet />
16+
<div className="dr-flex dr-flex-1 dr-gap-4 xl:dr-gap-8 dr-w-full dr-justify-center dr-items-center">
1917
<EnhetVelger />
2018
<SearchArea />
2119
<Markup />

packages/internarbeidsflate-decorator-v3/src/components/EnhetVelger.tsx

+27-38
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import React from 'react';
1+
import React, { ChangeEvent, useMemo } from 'react';
22
import { Select } from '@navikt/ds-react';
3-
import { ChangeEvent, useMemo } from 'react';
43
import StoreHandler from '../store/StoreHandler';
54

65
const EnhetVelger: React.FC = () => {
@@ -9,53 +8,43 @@ const EnhetVelger: React.FC = () => {
98
enhetId: state.enhet.value,
109
}));
1110

12-
const options = useMemo(() => {
13-
const res: JSX.Element[] = [];
14-
15-
if (enheter?.length) {
16-
res.push(
17-
<option value="" key="velg_enheter" disabled>
18-
Velg enhet
19-
</option>,
20-
);
21-
22-
for (const enhet of enheter) {
23-
res.push(
24-
<option
25-
key={enhet.enhetId}
26-
value={enhet.enhetId}
27-
>{`${enhet.enhetId} ${enhet.navn}`}</option>,
28-
);
29-
}
30-
}
31-
return res;
11+
const options: React.JSX.Element[] = useMemo(() => {
12+
const enhetOptions =
13+
enheter?.map((enhet) => (
14+
<option key={enhet.enhetId} value={enhet.enhetId}>
15+
{`${enhet.enhetId} ${enhet.navn}`}
16+
</option>
17+
)) ?? [];
18+
19+
return [
20+
<option value="" key="velg_enhet" disabled selected>
21+
Velg enhet
22+
</option>,
23+
...enhetOptions,
24+
];
3225
}, [enheter]);
3326

34-
const onChange = (e: ChangeEvent<HTMLSelectElement>) => {
35-
if (!enheter) {
27+
const onChange = async (e: ChangeEvent<HTMLSelectElement>) => {
28+
if (!enheter?.length) {
3629
throw new Error('Hadde ingen enheter når veileder prøvde å endre enhet');
3730
}
3831
const value = e.currentTarget.value;
39-
StoreHandler.enhetValueManager.changeEnhetLocallyAndExternally(
32+
await StoreHandler.enhetValueManager.changeEnhetLocallyAndExternally(
4033
enheter,
4134
value,
4235
);
4336
};
4437

45-
if (!options.length || enheter?.length === 1) return null;
46-
4738
return (
48-
<>
49-
<Select
50-
aria-label="Velg enhet"
51-
value={enhetId ?? undefined}
52-
label={undefined}
53-
onChange={onChange}
54-
className="!dr-w-52 !dr-border !dr-border-solid !dr-border-gray-400 !dr-rounded-medium !dr-outline-none"
55-
>
56-
{options}
57-
</Select>
58-
</>
39+
<Select
40+
value={enhetId ?? undefined}
41+
label="Velg enhet"
42+
onChange={onChange}
43+
hideLabel
44+
className="dr-w-64"
45+
>
46+
{options}
47+
</Select>
5948
);
6049
};
6150

packages/internarbeidsflate-decorator-v3/src/components/SearchArea.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import React from 'react';
1+
import React, { useEffect, useRef, useState } from 'react';
22
import { Button, TextField } from '@navikt/ds-react';
3-
import { useEffect, useRef, useState } from 'react';
43
import { MagnifyingGlassIcon, XMarkIcon } from '@navikt/aksel-icons';
54
import { useHotkeyState } from '../states/HotkeyState';
65
import StoreHandler from '../store/StoreHandler';
@@ -87,7 +86,7 @@ const SearchArea: React.FC = () => {
8786
export default SearchArea;
8887

8988
interface Config {
90-
icon: JSX.Element;
89+
icon: React.JSX.Element;
9190
label: string;
9291
onClick: () => void;
9392
}

packages/internarbeidsflate-decorator-v3/src/components/VeilederDetails.tsx

+13-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
import React from 'react';
22
import StoreHandler from '../store/StoreHandler';
3+
import { BodyShort, Skeleton } from '@navikt/ds-react';
34

45
const VeilederDetails: React.FC = () => {
56
const veileder = StoreHandler.store((state) => state.veileder);
67

7-
if (!veileder) return null;
8-
98
return (
10-
<div>
11-
<div>{veileder.ident ?? EMDASH}</div>
12-
<div>{veileder.navn}</div>
9+
<div className="dr-w-72">
10+
{veileder ? (
11+
<>
12+
<BodyShort>{veileder.ident ?? EMDASH}</BodyShort>
13+
<BodyShort>{veileder.navn}</BodyShort>
14+
</>
15+
) : (
16+
<>
17+
<Skeleton variant="text" className="dr-bg-gray-400" width="40%" />
18+
<Skeleton variant="text" className="dr-bg-gray-400" width="100%" />
19+
</>
20+
)}
1321
</div>
1422
);
1523
};

packages/internarbeidsflate-decorator-v3/src/hooks/useAppLogic.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ const useAppLogic = (props: AppProps) => {
1414
useSyncHotkeys(props);
1515
const { startListening, stopListening } = useHotkeys();
1616

17+
const { enableHotkeys = true } = props;
18+
1719
useEffect(() => {
18-
if (props.enableHotkeys) {
20+
if (enableHotkeys) {
1921
startListening();
2022
}
2123
return () => stopListening();

packages/internarbeidsflate-decorator-v3/src/store/FnrValueManager.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,13 @@ export class FnrValueManager extends ContextValueManager {
8888
};
8989

9090
readonly changeFnrLocallyAndExternally = async (newFnr?: string) => {
91-
const revert = this.optimisticUpdate('fnr');
91+
this.optimisticUpdate('fnr');
9292
this.changeFnrLocally(newFnr);
9393
const res = await this.contextHolderApi.changeFnr(newFnr);
9494
if (res.error) {
9595
this.#errorMessageManager.addErrorMessage(
9696
PredefiniertFeilmeldinger.OPPDATER_BRUKER_CONTEXT_FEILET,
9797
);
98-
revert();
9998
}
10099
};
101100

@@ -127,9 +126,9 @@ export class FnrValueManager extends ContextValueManager {
127126
}
128127
};
129128

130-
readonly clearFnr = () => {
129+
readonly clearFnr = async () => {
131130
this.changeFnrLocally();
132-
this.clearFnrExternally();
131+
await this.clearFnrExternally();
133132
this.#propsUpdateHandler.clearOldValue('fnr');
134133
};
135134

packages/internarbeidsflate-decorator-v3/src/utils/environmentUtils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ export type Environment =
88
| 'local'
99
| 'mock';
1010

11-
export type UrlFormat = 'LOCAL' | 'ADEO' | 'NAV_NO';
11+
export type UrlFormat = 'LOCAL' | 'ADEO' | 'NAV_NO' | 'ANSATT';

packages/internarbeidsflate-decorator-v3/src/utils/urlUtils.ts

+10
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ const naisDomain = (environment: Environment) => {
6161
return '.intern.dev.nav.no';
6262
};
6363

64+
const ansattDomain = (environment: Environment) => {
65+
if (environment === 'prod') {
66+
return '.ansatt.nav.no';
67+
}
68+
return '.ansatt.dev.nav.no';
69+
};
70+
6471
const modiaUrl = (
6572
fnr: string | undefined | null,
6673
path: string,
@@ -103,6 +110,7 @@ export const modiaContextHolderUrl = (
103110
environment,
104111
)}.adeo.no/modiacontextholder`;
105112
case 'NAV_NO':
113+
case 'ANSATT':
106114
return `https://modiacontextholder${naisDomain(
107115
environment,
108116
)}/modiacontextholder`;
@@ -117,6 +125,8 @@ export const wsEventDistribusjon = (
117125
switch (urlFormat) {
118126
case 'LOCAL':
119127
return 'ws://localhost:4000/ws/';
128+
case 'ANSATT':
129+
return `wss://modiaeventdistribution${ansattDomain(environment)}/ws/`;
120130
default: {
121131
if (environment === 'q2')
122132
return `wss://modiaeventdistribution${naisDomain(environment)}/ws/`;

0 commit comments

Comments
 (0)