1
+ import { gjennomforingDetaljerTabAtom } from "@/api/atoms" ;
1
2
import { useFeatureToggle } from "@/api/features/useFeatureToggle" ;
2
3
import { useGjennomforingEndringshistorikk } from "@/api/gjennomforing/useGjennomforingEndringshistorikk" ;
3
4
import { HarSkrivetilgang } from "@/components/authActions/HarSkrivetilgang" ;
@@ -7,9 +8,17 @@ import { SetApentForPameldingModal } from "@/components/gjennomforing/SetApentFo
7
8
import { RegistrerStengtHosArrangorModal } from "@/components/gjennomforing/stengt/RegistrerStengtHosArrangorModal" ;
8
9
import { AvbrytGjennomforingModal } from "@/components/modal/AvbrytGjennomforingModal" ;
9
10
import { KnapperadContainer } from "@/pages/KnapperadContainer" ;
10
- import { GjennomforingDto , GjennomforingStatus , NavAnsatt , Toggles } from "@mr/api-client-v2" ;
11
+ import {
12
+ GjennomforingDto ,
13
+ GjennomforingStatus ,
14
+ NavAnsatt ,
15
+ Opphav ,
16
+ Toggles ,
17
+ } from "@mr/api-client-v2" ;
11
18
import { VarselModal } from "@mr/frontend-common/components/varsel/VarselModal" ;
19
+ import { LayersPlusIcon } from "@navikt/aksel-icons" ;
12
20
import { Alert , BodyShort , Button , Dropdown , Switch } from "@navikt/ds-react" ;
21
+ import { useSetAtom } from "jotai" ;
13
22
import React , { useRef } from "react" ;
14
23
import { useFetcher , useNavigate } from "react-router" ;
15
24
interface Props {
@@ -24,6 +33,7 @@ export function GjennomforingKnapperad({ ansatt, gjennomforing }: Props) {
24
33
const avbrytModalRef = useRef < HTMLDialogElement > ( null ) ;
25
34
const registrerStengtModalRef = useRef < HTMLDialogElement > ( null ) ;
26
35
const apentForPameldingModalRef = useRef < HTMLDialogElement > ( null ) ;
36
+ const setGjennomforingDetaljerTab = useSetAtom ( gjennomforingDetaljerTabAtom ) ;
27
37
28
38
const { data : enableOkonomi } = useFeatureToggle (
29
39
Toggles . MULIGHETSROMMET_TILTAKSTYPE_MIGRERING_OKONOMI ,
@@ -48,6 +58,20 @@ export function GjennomforingKnapperad({ ansatt, gjennomforing }: Props) {
48
58
gjennomforingPublisert = fetcher . formData . get ( "publisert" ) === "true" ;
49
59
}
50
60
61
+ function dupliserGjennomforing ( ) {
62
+ setGjennomforingDetaljerTab ( "detaljer" ) ;
63
+ navigate ( `/avtaler/${ gjennomforing . avtaleId } /gjennomforinger/skjema` , {
64
+ state : {
65
+ dupliserGjennomforing : {
66
+ opphav : Opphav . MR_ADMIN_FLATE ,
67
+ avtaleId : gjennomforing . avtaleId ,
68
+ beskrivelse : gjennomforing . beskrivelse ,
69
+ faneinnhold : gjennomforing . faneinnhold ,
70
+ } ,
71
+ } ,
72
+ } ) ;
73
+ }
74
+
51
75
return (
52
76
< KnapperadContainer >
53
77
< HarSkrivetilgang
@@ -69,52 +93,65 @@ export function GjennomforingKnapperad({ ansatt, gjennomforing }: Props) {
69
93
< EndringshistorikkPopover >
70
94
< GjennomforingEndringshistorikk id = { gjennomforing . id } />
71
95
</ EndringshistorikkPopover >
72
-
73
- < HarSkrivetilgang
74
- ressurs = "Gjennomføring"
75
- condition = { gjennomforing . status . status === GjennomforingStatus . GJENNOMFORES }
76
- >
96
+ < HarSkrivetilgang ressurs = "Gjennomføring" >
77
97
< Dropdown >
78
98
< Button size = "small" as = { Dropdown . Toggle } >
79
99
Handlinger
80
100
</ Button >
81
101
< Dropdown . Menu >
82
- < Dropdown . Menu . GroupedList >
83
- < Dropdown . Menu . GroupedList . Item
84
- onClick = { ( ) => {
85
- if (
86
- gjennomforing . administratorer &&
87
- gjennomforing . administratorer . length > 0 &&
88
- ! gjennomforing . administratorer . map ( ( a ) => a . navIdent ) . includes ( ansatt . navIdent )
89
- ) {
90
- advarselModal . current ?. showModal ( ) ;
91
- } else {
92
- navigate ( "skjema" ) ;
93
- }
94
- } }
95
- >
96
- Rediger gjennomføring
97
- </ Dropdown . Menu . GroupedList . Item >
98
- { gjennomforing . status . status === GjennomforingStatus . GJENNOMFORES && (
99
- < Dropdown . Menu . GroupedList . Item
100
- onClick = { ( ) => apentForPameldingModalRef . current ?. showModal ( ) }
101
- >
102
- { gjennomforing . apentForPamelding ? "Steng for påmelding" : "Åpne for påmelding" }
103
- </ Dropdown . Menu . GroupedList . Item >
104
- ) }
105
- { enableOkonomi && (
106
- < Dropdown . Menu . GroupedList . Item
107
- onClick = { ( ) => registrerStengtModalRef . current ?. showModal ( ) }
108
- >
109
- Registrer stengt hos arrangør
110
- </ Dropdown . Menu . GroupedList . Item >
111
- ) }
112
- { gjennomforing . status . status === GjennomforingStatus . GJENNOMFORES && (
113
- < Dropdown . Menu . GroupedList . Item onClick = { ( ) => avbrytModalRef . current ?. showModal ( ) } >
114
- Avbryt gjennomføring
115
- </ Dropdown . Menu . GroupedList . Item >
116
- ) }
117
- </ Dropdown . Menu . GroupedList >
102
+ { gjennomforing . status . status === GjennomforingStatus . GJENNOMFORES && (
103
+ < >
104
+ < Dropdown . Menu . GroupedList >
105
+ < Dropdown . Menu . GroupedList . Item
106
+ onClick = { ( ) => {
107
+ if (
108
+ gjennomforing . administratorer &&
109
+ gjennomforing . administratorer . length > 0 &&
110
+ ! gjennomforing . administratorer
111
+ . map ( ( a ) => a . navIdent )
112
+ . includes ( ansatt . navIdent )
113
+ ) {
114
+ advarselModal . current ?. showModal ( ) ;
115
+ } else {
116
+ navigate ( "skjema" ) ;
117
+ }
118
+ } }
119
+ >
120
+ Rediger gjennomføring
121
+ </ Dropdown . Menu . GroupedList . Item >
122
+ { gjennomforing . status . status === GjennomforingStatus . GJENNOMFORES && (
123
+ < Dropdown . Menu . GroupedList . Item
124
+ onClick = { ( ) => apentForPameldingModalRef . current ?. showModal ( ) }
125
+ >
126
+ { gjennomforing . apentForPamelding
127
+ ? "Steng for påmelding"
128
+ : "Åpne for påmelding" }
129
+ </ Dropdown . Menu . GroupedList . Item >
130
+ ) }
131
+ { enableOkonomi && (
132
+ < Dropdown . Menu . GroupedList . Item
133
+ onClick = { ( ) => registrerStengtModalRef . current ?. showModal ( ) }
134
+ >
135
+ Registrer stengt hos arrangør
136
+ </ Dropdown . Menu . GroupedList . Item >
137
+ ) }
138
+ { gjennomforing . status . status === GjennomforingStatus . GJENNOMFORES && (
139
+ < Dropdown . Menu . GroupedList . Item
140
+ onClick = { ( ) => avbrytModalRef . current ?. showModal ( ) }
141
+ >
142
+ Avbryt gjennomføring
143
+ </ Dropdown . Menu . GroupedList . Item >
144
+ ) }
145
+ </ Dropdown . Menu . GroupedList >
146
+ < Dropdown . Menu . Divider />
147
+ </ >
148
+ ) }
149
+ < Dropdown . Menu . List >
150
+ < Dropdown . Menu . List . Item onClick = { dupliserGjennomforing } >
151
+ < LayersPlusIcon fontSize = "1.5rem" aria-label = "Ikon for duplisering av dokument" />
152
+ Dupliser
153
+ </ Dropdown . Menu . List . Item >
154
+ </ Dropdown . Menu . List >
118
155
</ Dropdown . Menu >
119
156
</ Dropdown >
120
157
</ HarSkrivetilgang >
0 commit comments