-
Notifications
You must be signed in to change notification settings - Fork 0
/
structure.ts
44 lines (39 loc) · 1.54 KB
/
structure.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import {
Divider,
ListItem,
ListItemBuilder,
StructureBuilder,
StructureResolverContext,
} from 'sanity/structure';
import { Resultat, Ytelse, ResultatTittel, ytelseTittel } from './src/typer';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export const structure = (S: StructureBuilder, _context: StructureResolverContext) => {
const lagYtelsemappe = lagYtelseMappeFunksjon(S);
const lagTypemappe = lagTypemappeFunksjon(S);
return S.list()
.title('Tilleggsstønader brev')
.items([
lagYtelsemappe(Ytelse.BARNETILSYN, [
lagTypemappe(Ytelse.BARNETILSYN, Resultat.INNVILGET),
lagTypemappe(Ytelse.BARNETILSYN, Resultat.AVSLAG),
lagTypemappe(Ytelse.BARNETILSYN, Resultat.FRITTSTAENDE),
lagTypemappe(Ytelse.BARNETILSYN, Resultat.REVURDERING),
lagTypemappe(Ytelse.BARNETILSYN, Resultat.OPPHOR),
]),
S.divider(),
...S.documentTypeListItems().filter((listItem) =>
['delmal', 'variabel', 'valgfelt', 'tekst'].includes(listItem.getId() || ''),
),
]);
};
const lagTypemappeFunksjon =
(S: StructureBuilder) =>
(ytelse: Ytelse, resultat: Resultat): ListItemBuilder =>
S.listItem()
.title(ResultatTittel[resultat])
.child(S.documentTypeList(`${ytelse}_${resultat}`).title(ResultatTittel[resultat]));
const lagYtelseMappeFunksjon =
(S: StructureBuilder) => (ytelse: Ytelse, items: (ListItemBuilder | ListItem | Divider)[]) =>
S.listItem()
.title(ytelseTittel[ytelse])
.child(S.list().title(ytelseTittel[ytelse]).items(items));