Skip to content

Commit 77a789d

Browse files
Logged in: Remove option to override internal saksnummer
1 parent 6cae5a1 commit 77a789d

File tree

1 file changed

+34
-40
lines changed

1 file changed

+34
-40
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
import { FormFieldsIds } from '@app/components/case/common/form-fields-ids';
22
import { useTranslation } from '@app/language/use-translation';
3-
import { PencilIcon } from '@navikt/aksel-icons';
4-
import { BodyShort, Button, Label, TextField } from '@navikt/ds-react';
5-
import { useEffect, useRef, useState } from 'react';
6-
import { styled } from 'styled-components';
3+
import { BodyShort, Heading, TextField } from '@navikt/ds-react';
4+
import { useEffect, useState } from 'react';
75

8-
interface Props {
6+
interface UserSaksnummerProps {
97
value: string | null;
10-
internalSaksnummer?: string | null;
118
onChange: (saksnummer: string | null) => void;
129
error: string | undefined;
1310
}
1411

15-
export const DebouncedSaksnummer = ({ value, onChange, ...props }: Props) => {
12+
interface Props extends UserSaksnummerProps {
13+
internalSaksnummer: string | null;
14+
}
15+
16+
const DebouncedUserSaksnummer = ({ value, onChange, error }: UserSaksnummerProps) => {
1617
const [localValue, setLocalValue] = useState(value);
1718

1819
useEffect(() => {
@@ -25,56 +26,49 @@ export const DebouncedSaksnummer = ({ value, onChange, ...props }: Props) => {
2526
return () => clearTimeout(timeout);
2627
}, [onChange, value, localValue]);
2728

28-
return <Saksnummer {...props} value={localValue} onChange={setLocalValue} />;
29+
return <UserSaksnummer error={error} value={localValue} onChange={setLocalValue} />;
2930
};
3031

31-
export const Saksnummer = ({ value, internalSaksnummer, onChange, error }: Props) => {
32-
const inputRef = useRef<HTMLInputElement>(null);
32+
const InternalSaksnummer = ({ internalSaksnummer }: { internalSaksnummer: string }) => {
3333
const { skjema } = useTranslation();
3434

35-
const usersaksnummer = (
35+
if (typeof internalSaksnummer === 'string' && internalSaksnummer.length !== 0) {
36+
return (
37+
<section>
38+
<Heading size="xsmall">{skjema.begrunnelse.saksnummer.internalTitle}</Heading>
39+
<BodyShort>{internalSaksnummer}</BodyShort>
40+
</section>
41+
);
42+
}
43+
};
44+
45+
const UserSaksnummer = ({ value, onChange, error }: UserSaksnummerProps) => {
46+
const { skjema } = useTranslation();
47+
48+
return (
3649
<TextField
3750
id={FormFieldsIds.SAKSNUMMER}
3851
label={skjema.begrunnelse.saksnummer.title}
3952
value={value ?? ''}
4053
onChange={({ target }) => onChange(target.value)}
4154
htmlSize={24}
4255
error={error}
43-
ref={inputRef}
4456
/>
4557
);
58+
};
4659

47-
if (value !== null) {
48-
return usersaksnummer;
60+
export const Saksnummer = ({ value, internalSaksnummer, onChange, error }: Props) => {
61+
if (typeof internalSaksnummer === 'string' && internalSaksnummer.length !== 0) {
62+
return <InternalSaksnummer internalSaksnummer={internalSaksnummer} />;
4963
}
5064

65+
return <UserSaksnummer value={value} onChange={onChange} error={error} />;
66+
};
67+
68+
export const DebouncedSaksnummer = ({ value, internalSaksnummer, onChange, error }: Props) => {
5169
if (typeof internalSaksnummer === 'string' && internalSaksnummer.length !== 0) {
52-
return (
53-
<div>
54-
<Label>{skjema.begrunnelse.saksnummer.internalTitle}</Label>
55-
<Row>
56-
<BodyShort>{internalSaksnummer}</BodyShort>
57-
<Button
58-
title={skjema.begrunnelse.saksnummer.change}
59-
onClick={() => {
60-
onChange(internalSaksnummer);
61-
setTimeout(() => inputRef.current?.focus(), 0);
62-
}}
63-
size="small"
64-
icon={<PencilIcon aria-hidden />}
65-
variant="tertiary"
66-
/>
67-
</Row>
68-
</div>
69-
);
70+
return <InternalSaksnummer internalSaksnummer={internalSaksnummer} />;
7071
}
7172

72-
return usersaksnummer;
73+
return <DebouncedUserSaksnummer value={value} onChange={onChange} error={error} />;
7374
};
74-
75-
const Row = styled.div`
76-
display: flex;
77-
flex-direction: row;
78-
align-items: center;
79-
column-gap: 8px;
80-
`;

0 commit comments

Comments
 (0)