@lysaab/lysa-pep 1.0.3-0 → 1.0.5-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/messages/src/components/CountrySelect.json +1 -0
  2. package/messages/src/components/PepAnswers.json +1 -0
  3. package/messages/src/pages/IsPep/IsPepMessages.json +1 -0
  4. package/messages/src/pages/IsPep/IsPepPage.json +1 -0
  5. package/messages/src/pages/RelationPage/RelationMessages.json +1 -0
  6. package/messages/src/pages/RelationPage/RelationPage.json +1 -0
  7. package/messages/src/pages/RolePage/RoleMessages.json +1 -0
  8. package/messages/src/pages/RolePage/RolePage.json +1 -0
  9. package/messages/src/pages/StatusPage/StatusMessages.json +1 -0
  10. package/messages/src/pages/StatusPage/StatusPage.json +1 -0
  11. package/package.json +25 -13
  12. package/{lib/pages → pages}/IsPep/IsPepMessages.js +13 -13
  13. package/{lib/pages → pages}/IsPep/IsPepPage.js +7 -6
  14. package/pages/RelationPage/RelationPage.js +154 -0
  15. package/pages/RolePage/RolePage.js +223 -0
  16. package/pages/StatusPage/StatusPage.js +98 -0
  17. package/lib/pages/RelationPage/RelationPage.js +0 -153
  18. package/lib/pages/RolePage/RolePage.js +0 -220
  19. package/lib/pages/StatusPage/StatusPage.js +0 -95
  20. package/public/favicon.ico +0 -0
  21. package/public/index.html +0 -43
  22. package/public/logo192.png +0 -0
  23. package/public/logo512.png +0 -0
  24. package/public/manifest.json +0 -25
  25. package/public/robots.txt +0 -2
  26. package/src/App.css +0 -3
  27. package/src/App.test.tsx +0 -9
  28. package/src/App.tsx +0 -25
  29. package/src/Exports.ts +0 -12
  30. package/src/components/CountrySelect.tsx +0 -47
  31. package/src/components/PepAnswers.scss +0 -7
  32. package/src/components/PepAnswers.tsx +0 -252
  33. package/src/demo/Done.tsx +0 -16
  34. package/src/demo/Pep.tsx +0 -112
  35. package/src/index.css +0 -13
  36. package/src/index.tsx +0 -12
  37. package/src/logo.svg +0 -1
  38. package/src/model/Countries.ts +0 -1002
  39. package/src/model/PepModel.ts +0 -52
  40. package/src/pages/IsPep/IsPepMessages.ts +0 -67
  41. package/src/pages/IsPep/IsPepPage.tsx +0 -115
  42. package/src/pages/PepContext.tsx +0 -144
  43. package/src/pages/RelationPage/RelationMessages.ts +0 -288
  44. package/src/pages/RelationPage/RelationPage.tsx +0 -299
  45. package/src/pages/RolePage/RoleMessages.ts +0 -393
  46. package/src/pages/RolePage/RolePage.tsx +0 -356
  47. package/src/pages/StatusPage/StatusMessages.ts +0 -272
  48. package/src/pages/StatusPage/StatusPage.tsx +0 -207
  49. package/src/react-app-env.d.ts +0 -1
  50. package/src/serviceWorker.ts +0 -143
  51. package/src/utils/Possession.ts +0 -21
  52. package/tsconfig.json +0 -25
  53. package/tsconfig_build.json +0 -19
  54. /package/{lib/Exports.d.ts → Exports.d.ts} +0 -0
  55. /package/{lib/Exports.js → Exports.js} +0 -0
  56. /package/{lib/components → components}/CountrySelect.d.ts +0 -0
  57. /package/{lib/components → components}/CountrySelect.js +0 -0
  58. /package/{lib/components → components}/PepAnswers.d.ts +0 -0
  59. /package/{lib/components → components}/PepAnswers.js +0 -0
  60. /package/{lib/components → components}/PepAnswers.scss +0 -0
  61. /package/{lib/model → model}/Countries.d.ts +0 -0
  62. /package/{lib/model → model}/Countries.js +0 -0
  63. /package/{lib/model → model}/PepModel.d.ts +0 -0
  64. /package/{lib/model → model}/PepModel.js +0 -0
  65. /package/{lib/model → model}/PepTexts.d.ts +0 -0
  66. /package/{lib/model → model}/PepTexts.js +0 -0
  67. /package/{lib/pages → pages}/IsPep/IsPepMessages.d.ts +0 -0
  68. /package/{lib/pages → pages}/IsPep/IsPepPage.d.ts +0 -0
  69. /package/{lib/pages → pages}/PepContext.d.ts +0 -0
  70. /package/{lib/pages → pages}/PepContext.js +0 -0
  71. /package/{lib/pages → pages}/PepIsPepPage.d.ts +0 -0
  72. /package/{lib/pages → pages}/PepIsPepPage.js +0 -0
  73. /package/{lib/pages → pages}/PepRelationPage.d.ts +0 -0
  74. /package/{lib/pages → pages}/PepRelationPage.js +0 -0
  75. /package/{lib/pages → pages}/PepRolePage.d.ts +0 -0
  76. /package/{lib/pages → pages}/PepRolePage.js +0 -0
  77. /package/{lib/pages → pages}/PepStatusPage.d.ts +0 -0
  78. /package/{lib/pages → pages}/PepStatusPage.js +0 -0
  79. /package/{lib/pages → pages}/RelationPage/RelationMessages.d.ts +0 -0
  80. /package/{lib/pages → pages}/RelationPage/RelationMessages.js +0 -0
  81. /package/{lib/pages → pages}/RelationPage/RelationPage.d.ts +0 -0
  82. /package/{lib/pages → pages}/RolePage/RoleMessages.d.ts +0 -0
  83. /package/{lib/pages → pages}/RolePage/RoleMessages.js +0 -0
  84. /package/{lib/pages → pages}/RolePage/RolePage.d.ts +0 -0
  85. /package/{lib/pages → pages}/StatusPage/StatusMessages.d.ts +0 -0
  86. /package/{lib/pages → pages}/StatusPage/StatusMessages.js +0 -0
  87. /package/{lib/pages → pages}/StatusPage/StatusPage.d.ts +0 -0
  88. /package/{lib/utils → utils}/Possession.d.ts +0 -0
  89. /package/{lib/utils → utils}/Possession.js +0 -0
@@ -0,0 +1,223 @@
1
+ import React, { useRef, useCallback, useContext, } from "react";
2
+ import { Form, PrimaryButton, RequiredValidator, TextInput, Select, Card, } from "@lysaab/ui-2";
3
+ import { PepContext, Role, MilitaryRank, PepType, EntityType, } from "../PepContext";
4
+ import { CountrySelect } from "../../components/CountrySelect";
5
+ import { useIntl, FormattedMessage } from "react-intl";
6
+ import { roleMessages, ambassadorMessages, governmentCompanyMessages, intCompanyMessages, militaryMessages, } from "./RoleMessages";
7
+ import { formatPossessive } from "../../utils/Possession";
8
+ export const RolePage = ({ next }) => {
9
+ const pepContext = useContext(PepContext);
10
+ const formRef = useRef();
11
+ const intl = useIntl();
12
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
13
+ const type = pepContext.state.type;
14
+ const roleAlternatives = getRoleAlts(intl);
15
+ const militaryAlternatives = getMilitaryAlts(intl);
16
+ const nextPage = useCallback(() => {
17
+ if (formRef.current && formRef.current.isValid) {
18
+ next();
19
+ }
20
+ }, [formRef, next]);
21
+ const resetRoleFields = useCallback(() => {
22
+ pepContext.setState({
23
+ ambassadorCountry: undefined,
24
+ governmentCompany: undefined,
25
+ governmentCompanyRole: undefined,
26
+ internationalOrganisation: undefined,
27
+ internationalOrganisationRole: undefined,
28
+ militaryRank: undefined,
29
+ });
30
+ }, [pepContext]);
31
+ if (!type || type === PepType.NOT_PEP) {
32
+ return null;
33
+ }
34
+ return (React.createElement(Form, { onSubmit: () => nextPage(), lysaFormRef: formRef },
35
+ React.createElement(Card, null,
36
+ React.createElement(Select, { label: intl.formatMessage(roleMessages.header, {
37
+ entityType,
38
+ pepType: type,
39
+ relation: pepContext.state.type === PepType.COLLEAGUE
40
+ ? pepContext.state.businessRelation
41
+ : pepContext.state.relationToPEP,
42
+ name: pepContext.state.ownerName,
43
+ possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
44
+ }), placeholder: intl.formatMessage(roleMessages.placeholder), alternatives: roleAlternatives, value: roleAlternatives.find((alt) => alt.value === pepContext.state.role), onChange: (event) => {
45
+ pepContext.setState({ role: event.value });
46
+ resetRoleFields();
47
+ }, validators: [
48
+ new RequiredValidator(intl.formatMessage(roleMessages.required)),
49
+ ] }),
50
+ pepContext.state.role && pepContext.state.role === Role.AMBASSADOR ? (React.createElement(CountrySelect, { label: intl.formatMessage(ambassadorMessages.header, {
51
+ entityType,
52
+ pepType: type,
53
+ relation: pepContext.state.type === PepType.COLLEAGUE
54
+ ? pepContext.state.businessRelation
55
+ : pepContext.state.relationToPEP,
56
+ name: pepContext.state.ownerName,
57
+ }), onChange: (event) => pepContext.setState({
58
+ ambassadorCountry: event.value
59
+ ? event.value.toString()
60
+ : undefined,
61
+ }), value: pepContext.state.ambassadorCountry, validators: [
62
+ new RequiredValidator(intl.formatMessage(ambassadorMessages.required)),
63
+ ] })) : null,
64
+ pepContext.state.role &&
65
+ pepContext.state.role === Role.GOVERNMENT_COMPANY ? (React.createElement(React.Fragment, null,
66
+ React.createElement(TextInput, { label: intl.formatMessage(governmentCompanyMessages.nameHeader, {
67
+ entityType,
68
+ pepType: type,
69
+ relation: pepContext.state.type === PepType.COLLEAGUE
70
+ ? pepContext.state.businessRelation
71
+ : pepContext.state.relationToPEP,
72
+ name: pepContext.state.ownerName,
73
+ }), value: pepContext.state.governmentCompany || "", onChange: (value) => {
74
+ pepContext.setState({ governmentCompany: value });
75
+ }, validators: [
76
+ new RequiredValidator(intl.formatMessage(governmentCompanyMessages.nameRequired)),
77
+ ] }),
78
+ React.createElement(TextInput, { label: intl.formatMessage(governmentCompanyMessages.roleHeader, {
79
+ entityType,
80
+ pepType: type,
81
+ relation: pepContext.state.type === PepType.COLLEAGUE
82
+ ? pepContext.state.businessRelation
83
+ : pepContext.state.relationToPEP,
84
+ name: pepContext.state.ownerName,
85
+ }), value: pepContext.state.governmentCompanyRole || "", onChange: (value) => {
86
+ pepContext.setState({
87
+ governmentCompanyRole: value,
88
+ });
89
+ }, validators: [
90
+ new RequiredValidator(intl.formatMessage(governmentCompanyMessages.roleRequired)),
91
+ ] }))) : null,
92
+ pepContext.state.role &&
93
+ pepContext.state.role ===
94
+ Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP ? (React.createElement(React.Fragment, null,
95
+ React.createElement(TextInput, { label: intl.formatMessage(intCompanyMessages.nameHeader, {
96
+ entityType,
97
+ pepType: type,
98
+ relation: pepContext.state.type === PepType.COLLEAGUE
99
+ ? pepContext.state.businessRelation
100
+ : pepContext.state.relationToPEP,
101
+ name: pepContext.state.ownerName,
102
+ }), value: pepContext.state.internationalOrganisation || "", onChange: (value) => {
103
+ pepContext.setState({ internationalOrganisation: value });
104
+ }, validators: [
105
+ new RequiredValidator(intl.formatMessage(intCompanyMessages.nameRequired)),
106
+ ] }),
107
+ React.createElement(TextInput, { label: intl.formatMessage(intCompanyMessages.roleHeader, {
108
+ entityType,
109
+ pepType: type,
110
+ relation: pepContext.state.type === PepType.COLLEAGUE
111
+ ? pepContext.state.businessRelation
112
+ : pepContext.state.relationToPEP,
113
+ name: pepContext.state.ownerName,
114
+ }), value: pepContext.state.internationalOrganisationRole || "", onChange: (value) => {
115
+ pepContext.setState({
116
+ internationalOrganisationRole: value,
117
+ });
118
+ }, validators: [
119
+ new RequiredValidator(intl.formatMessage(intCompanyMessages.roleRequired)),
120
+ ] }))) : null,
121
+ pepContext.state.role &&
122
+ pepContext.state.role === Role.MILITARY_OFFICER ? (React.createElement(Select, { label: intl.formatMessage(militaryMessages.header, {
123
+ entityType,
124
+ pepType: type,
125
+ relation: pepContext.state.type === PepType.COLLEAGUE
126
+ ? pepContext.state.businessRelation
127
+ : pepContext.state.relationToPEP,
128
+ name: pepContext.state.ownerName,
129
+ possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
130
+ }), placeholder: intl.formatMessage(militaryMessages.placeholder), alternatives: militaryAlternatives, value: militaryAlternatives.find((alt) => alt.value === pepContext.state.militaryRank), onChange: (event) => {
131
+ pepContext.setState({
132
+ militaryRank: event.value,
133
+ });
134
+ }, validators: [
135
+ new RequiredValidator(intl.formatMessage(militaryMessages.required)),
136
+ ] })) : null),
137
+ React.createElement(PrimaryButton, { block: true, type: "submit" },
138
+ React.createElement(FormattedMessage, { id: "pep.role.next", description: "Next button", defaultMessage: "G\u00E5 vidare" }))));
139
+ };
140
+ export function getRoleAlts(intl) {
141
+ return [
142
+ {
143
+ text: intl.formatMessage(roleMessages[Role.HEAD_OF_GOVERNMENT]),
144
+ value: Role.HEAD_OF_GOVERNMENT,
145
+ },
146
+ {
147
+ text: intl.formatMessage(roleMessages[Role.MINISTER]),
148
+ value: Role.MINISTER,
149
+ },
150
+ {
151
+ text: intl.formatMessage(roleMessages[Role.PARLIMENT_MEMBER]),
152
+ value: Role.PARLIMENT_MEMBER,
153
+ },
154
+ {
155
+ text: intl.formatMessage(roleMessages[Role.CENTRAL_BANK_MEMBER]),
156
+ value: Role.CENTRAL_BANK_MEMBER,
157
+ },
158
+ {
159
+ text: intl.formatMessage(roleMessages[Role.BOARD_MEMBER_POLITICAL_PARTY]),
160
+ value: Role.BOARD_MEMBER_POLITICAL_PARTY,
161
+ },
162
+ {
163
+ text: intl.formatMessage(roleMessages[Role.JUDGE_SUPREME_COURT]),
164
+ value: Role.JUDGE_SUPREME_COURT,
165
+ },
166
+ {
167
+ text: intl.formatMessage(roleMessages[Role.JUDGE_OTHER_HIGH_COURT]),
168
+ value: Role.JUDGE_OTHER_HIGH_COURT,
169
+ },
170
+ {
171
+ text: intl.formatMessage(roleMessages[Role.REVISION_INSTITUTE]),
172
+ value: Role.REVISION_INSTITUTE,
173
+ },
174
+ {
175
+ text: intl.formatMessage(roleMessages[Role.AMBASSADOR]),
176
+ value: Role.AMBASSADOR,
177
+ },
178
+ {
179
+ text: intl.formatMessage(roleMessages[Role.MILITARY_OFFICER]),
180
+ value: Role.MILITARY_OFFICER,
181
+ },
182
+ {
183
+ text: intl.formatMessage(roleMessages[Role.GOVERNMENT_COMPANY]),
184
+ value: Role.GOVERNMENT_COMPANY,
185
+ },
186
+ {
187
+ text: intl.formatMessage(roleMessages[Role.EU_HIGH_RANKING_POSITION]),
188
+ value: Role.EU_HIGH_RANKING_POSITION,
189
+ },
190
+ {
191
+ text: intl.formatMessage(roleMessages[Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP]),
192
+ value: Role.HIGH_RANKING_POSITION_INTERNALTIONAL_CORP,
193
+ },
194
+ ];
195
+ }
196
+ export function getMilitaryAlts(intl) {
197
+ return [
198
+ {
199
+ text: intl.formatMessage(militaryMessages[MilitaryRank.GENERAL]),
200
+ value: MilitaryRank.GENERAL,
201
+ },
202
+ {
203
+ text: intl.formatMessage(militaryMessages[MilitaryRank.LIEUTENANT_GENERAL]),
204
+ value: MilitaryRank.LIEUTENANT_GENERAL,
205
+ },
206
+ {
207
+ text: intl.formatMessage(militaryMessages[MilitaryRank.MAJOR_GENERAL]),
208
+ value: MilitaryRank.MAJOR_GENERAL,
209
+ },
210
+ {
211
+ text: intl.formatMessage(militaryMessages[MilitaryRank.ADMIRAL]),
212
+ value: MilitaryRank.ADMIRAL,
213
+ },
214
+ {
215
+ text: intl.formatMessage(militaryMessages[MilitaryRank.VICE_ADMIRAL]),
216
+ value: MilitaryRank.VICE_ADMIRAL,
217
+ },
218
+ {
219
+ text: intl.formatMessage(militaryMessages[MilitaryRank.REAR_ADMIRAL]),
220
+ value: MilitaryRank.REAR_ADMIRAL,
221
+ },
222
+ ];
223
+ }
@@ -0,0 +1,98 @@
1
+ import React, { useRef, useCallback, useContext, } from "react";
2
+ import { Form, RadioGroup, RequiredValidator, PrimaryButton, Datepicker, Card, } from "@lysaab/ui-2";
3
+ import { PepContext, PepStatus, EntityType, PepType } from "../PepContext";
4
+ import { CountrySelect } from "../../components/CountrySelect";
5
+ import { useIntl, FormattedMessage } from "react-intl";
6
+ import { isOngoingMessages, endedMessages, isLocalCountryMessages, countrySelectionMessages, localCountryAltMessages, stateAltMessages, } from "./StatusMessages";
7
+ import { formatPossessive } from "../../utils/Possession";
8
+ export const StatusPage = ({ next }) => {
9
+ const pepContext = useContext(PepContext);
10
+ const formRef = useRef();
11
+ const intl = useIntl();
12
+ const stateAlternatives = getStateAlternatives(intl);
13
+ const isSwedenAlternatives = getIsLocalCountryAlternatives(intl);
14
+ const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
15
+ const nextPage = useCallback(() => {
16
+ if (formRef.current && formRef.current.isValid) {
17
+ next();
18
+ }
19
+ }, [formRef, next]);
20
+ const updateIsSweden = useCallback((alternative) => {
21
+ pepContext.setState({ isSweden: alternative.value });
22
+ if (alternative.value === "other") {
23
+ pepContext.setState({ country: undefined });
24
+ }
25
+ }, [pepContext]);
26
+ const updateIsOngoing = useCallback((alternative) => {
27
+ pepContext.setState({ isOngoing: alternative.value });
28
+ if (alternative.value === PepStatus.ONGOING) {
29
+ pepContext.setState({ ended: undefined });
30
+ }
31
+ }, [pepContext]);
32
+ return (React.createElement("div", null,
33
+ React.createElement(Form, { lysaFormRef: formRef, onSubmit: () => {
34
+ nextPage();
35
+ } },
36
+ React.createElement(Card, null,
37
+ React.createElement(RadioGroup, { alternatives: stateAlternatives, header: intl.formatMessage(isOngoingMessages.header, {
38
+ entityType,
39
+ name: pepContext.state.ownerName,
40
+ possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
41
+ relation: pepContext.state.type === PepType.COLLEAGUE
42
+ ? pepContext.state.businessRelation
43
+ : pepContext.state.relationToPEP,
44
+ pepType: pepContext.state.type,
45
+ }), onChange: updateIsOngoing, value: stateAlternatives.find((alt) => alt.value === pepContext.state.isOngoing), validators: [
46
+ new RequiredValidator(intl.formatMessage(isOngoingMessages.required)),
47
+ ] }),
48
+ pepContext.state.isOngoing &&
49
+ pepContext.state.isOngoing === PepStatus.ENDED ? (React.createElement(Datepicker, { label: intl.formatMessage(endedMessages.header), selected: pepContext.state.ended, onChange: (event) => pepContext.setState({ ended: event || undefined }), validators: [
50
+ new RequiredValidator(intl.formatMessage(isOngoingMessages.required)),
51
+ ], showMonthYearPicker: true, dateFormat: "yyyy-MM", maxDate: new Date() })) : null),
52
+ React.createElement(Card, null,
53
+ React.createElement(RadioGroup, { alternatives: isSwedenAlternatives, header: intl.formatMessage(isLocalCountryMessages.header, {
54
+ possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
55
+ }), onChange: updateIsSweden, value: isSwedenAlternatives.find((alt) => alt.value === pepContext.state.isSweden), validators: [
56
+ new RequiredValidator(intl.formatMessage(isLocalCountryMessages.required)),
57
+ ] }),
58
+ pepContext.state.isSweden &&
59
+ pepContext.state.isSweden === "other" ? (React.createElement(CountrySelect, { label: intl.formatMessage(countrySelectionMessages.header, {
60
+ entityType,
61
+ name: pepContext.state.ownerName,
62
+ possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
63
+ relation: pepContext.state.type === PepType.COLLEAGUE
64
+ ? pepContext.state.businessRelation
65
+ : pepContext.state.relationToPEP,
66
+ pepType: pepContext.state.type,
67
+ }), onChange: (event) => pepContext.setState({
68
+ country: event.value ? event.value.toString() : undefined,
69
+ }), validators: [
70
+ new RequiredValidator(intl.formatMessage(countrySelectionMessages.required)),
71
+ ], value: pepContext.state.country, omitCountries: ["SE"] })) : null),
72
+ React.createElement(PrimaryButton, { block: true, type: "submit" },
73
+ React.createElement(FormattedMessage, { id: "pep.status.next", description: "Next button", defaultMessage: "G\u00E5 vidare" })))));
74
+ };
75
+ function getIsLocalCountryAlternatives(intl) {
76
+ return [
77
+ {
78
+ text: intl.formatMessage(localCountryAltMessages.localCountry),
79
+ value: "sweden",
80
+ },
81
+ {
82
+ text: intl.formatMessage(localCountryAltMessages.otherCountry),
83
+ value: "other",
84
+ },
85
+ ];
86
+ }
87
+ function getStateAlternatives(intl) {
88
+ return [
89
+ {
90
+ text: intl.formatMessage(stateAltMessages[PepStatus.ONGOING]),
91
+ value: PepStatus.ONGOING,
92
+ },
93
+ {
94
+ text: intl.formatMessage(stateAltMessages[PepStatus.ENDED]),
95
+ value: PepStatus.ENDED,
96
+ },
97
+ ];
98
+ }
@@ -1,153 +0,0 @@
1
- import React, { useContext, useRef, useCallback, } from "react";
2
- import { PepContext, PepType, BusinessRelation, Relation, EntityType, } from "../PepContext";
3
- import { RadioGroup, Form, RequiredValidator, TextInput, Datepicker, PrimaryButton, } from "@lysaab/ui-2";
4
- import { DateTime } from "luxon";
5
- import { useIntl, FormattedMessage } from "react-intl";
6
- import { relationMessages, businessRelationMessages, relativeNameMessages, birthdayMessages, colleagueNameMessages, } from "./RelationMessages";
7
- import { formatPossessive } from "../../utils/Possession";
8
- const DATEPICKER_START_DATE = DateTime.fromISO("1970-01-01").toJSDate();
9
- export const RelationPage = ({ next }) => {
10
- const intl = useIntl();
11
- const pepContext = useContext(PepContext);
12
- const formRef = useRef();
13
- const entityType = pepContext.state.legalEntityType || EntityType.PERSON;
14
- const type = pepContext.state.type;
15
- const businessRelationAlternatives = getBusinessRelationAlternatives(intl, entityType, pepContext);
16
- const relationAlternatives = getRelationAlternatives(intl, entityType, pepContext);
17
- const nextPage = useCallback(() => {
18
- if (formRef.current && formRef.current.isValid) {
19
- next();
20
- }
21
- }, [formRef, next]);
22
- return (React.createElement(Form, { onSubmit: () => nextPage(), lysaFormRef: formRef },
23
- type === PepType.RELATIVE ? (React.createElement(RadioGroup, { alternatives: relationAlternatives, onChange: (alternative) => {
24
- pepContext.setState({
25
- relationToPEP: alternative.value,
26
- });
27
- }, value: relationAlternatives.find((alt) => alt.value === pepContext.state.relationToPEP), header: intl.formatMessage(relationMessages.header, {
28
- entityType,
29
- name: pepContext.state.ownerName,
30
- possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
31
- }), validators: [
32
- new RequiredValidator(intl.formatMessage(relationMessages.required)),
33
- ] })) : null,
34
- type === PepType.COLLEAGUE ? (React.createElement(RadioGroup, { alternatives: businessRelationAlternatives, onChange: (alternative) => {
35
- pepContext.setState({
36
- businessRelation: alternative.value,
37
- });
38
- }, value: businessRelationAlternatives.find((alt) => alt.value === pepContext.state.businessRelation), header: intl.formatMessage(businessRelationMessages.header, {
39
- entityType,
40
- name: pepContext.state.ownerName,
41
- }), validators: [
42
- new RequiredValidator(intl.formatMessage(businessRelationMessages.required)),
43
- ] })) : null,
44
- pepContext.state.relationToPEP && type === PepType.RELATIVE ? (React.createElement(React.Fragment, null,
45
- React.createElement(TextInput, { label: intl.formatMessage(relativeNameMessages.header, {
46
- entityType,
47
- name: pepContext.state.ownerName,
48
- relation: pepContext.state.type === PepType.COLLEAGUE
49
- ? pepContext.state.businessRelation
50
- : pepContext.state.relationToPEP,
51
- possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
52
- }), value: pepContext.state.nameOfPEP || "", onChange: (value) => {
53
- pepContext.setState({ nameOfPEP: value });
54
- }, validators: [
55
- new RequiredValidator(intl.formatMessage(relativeNameMessages.required)),
56
- ] }),
57
- React.createElement(Datepicker, { label: intl.formatMessage(birthdayMessages.header, {
58
- entityType,
59
- name: pepContext.state.ownerName,
60
- relation: pepContext.state.type === PepType.COLLEAGUE
61
- ? pepContext.state.businessRelation
62
- : pepContext.state.relationToPEP,
63
- possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
64
- }), selected: pepContext.state.birthdayOfPEP, onChange: (event) => pepContext.setState({ birthdayOfPEP: event || undefined }), validators: [
65
- new RequiredValidator(intl.formatMessage(birthdayMessages.required)),
66
- ], maxDate: new Date(), openToDate: pepContext.state.birthdayOfPEP || DATEPICKER_START_DATE }))) : null,
67
- pepContext.state.businessRelation && type === PepType.COLLEAGUE ? (React.createElement(React.Fragment, null,
68
- React.createElement(TextInput, { label: intl.formatMessage(colleagueNameMessages.header, {
69
- entityType,
70
- name: pepContext.state.ownerName,
71
- relation: pepContext.state.type === PepType.COLLEAGUE
72
- ? pepContext.state.businessRelation
73
- : pepContext.state.relationToPEP,
74
- possessiveName: formatPossessive(pepContext.state.ownerName, intl.locale),
75
- }), value: pepContext.state.nameOfPEP || "", onChange: (value) => {
76
- pepContext.setState({ nameOfPEP: value });
77
- }, validators: [
78
- new RequiredValidator(intl.formatMessage(colleagueNameMessages.required)),
79
- ] }))) : null,
80
- React.createElement(PrimaryButton, { type: "submit" },
81
- React.createElement(FormattedMessage, { id: "pep.relation.next", description: "Next button", defaultMessage: "G\u00E5 vidare" }))));
82
- };
83
- function getRelationAlternatives(intl, entityType, pepContext) {
84
- return [
85
- {
86
- text: intl.formatMessage(relationMessages[Relation.MARRIED_PARTNER], {
87
- entityType,
88
- name: pepContext.state.ownerName,
89
- }),
90
- value: Relation.MARRIED_PARTNER,
91
- },
92
- {
93
- text: intl.formatMessage(relationMessages[Relation.COLIVING_PARTNER], {
94
- entityType,
95
- name: pepContext.state.ownerName,
96
- }),
97
- value: Relation.COLIVING_PARTNER,
98
- },
99
- {
100
- text: intl.formatMessage(relationMessages[Relation.CHILD], {
101
- entityType,
102
- name: pepContext.state.ownerName,
103
- }),
104
- value: Relation.CHILD,
105
- },
106
- {
107
- text: intl.formatMessage(relationMessages[Relation.PARENT], {
108
- entityType,
109
- name: pepContext.state.ownerName,
110
- }),
111
- value: Relation.PARENT,
112
- },
113
- {
114
- text: intl.formatMessage(relationMessages[Relation.CHILD_MARRIED_PARTNER], {
115
- entityType,
116
- name: pepContext.state.ownerName,
117
- }),
118
- value: Relation.CHILD_MARRIED_PARTNER,
119
- },
120
- {
121
- text: intl.formatMessage(relationMessages[Relation.CHILD_COLIVING_PARTNER], {
122
- entityType,
123
- name: pepContext.state.ownerName,
124
- }),
125
- value: Relation.CHILD_COLIVING_PARTNER,
126
- },
127
- ];
128
- }
129
- function getBusinessRelationAlternatives(intl, entityType, pepContext) {
130
- return [
131
- {
132
- text: intl.formatMessage(businessRelationMessages[BusinessRelation.CO_OWNERSHIP], {
133
- entityType,
134
- name: pepContext.state.ownerName,
135
- }),
136
- value: BusinessRelation.CO_OWNERSHIP,
137
- },
138
- {
139
- text: intl.formatMessage(businessRelationMessages[BusinessRelation.CLOSE_CONNECTION], {
140
- entityType,
141
- name: pepContext.state.ownerName,
142
- }),
143
- value: BusinessRelation.CLOSE_CONNECTION,
144
- },
145
- {
146
- text: intl.formatMessage(businessRelationMessages[BusinessRelation.COMPANY_FOR_PEP], {
147
- entityType,
148
- name: pepContext.state.ownerName,
149
- }),
150
- value: BusinessRelation.COMPANY_FOR_PEP,
151
- },
152
- ];
153
- }