Skip to content

Commit f5faa9c

Browse files
authored
fix(json-schema) - fix force value fields and x-jsf-fieldsets (#801)
* feat(onboarding) - make work happen to load dynamic versions of basic information * correct docs * add benefits * upgrade limits * add utils * add tests * fix(force-value) - fix title property * fix props * solve flat fieldsets * remove logs * fix test * add tests
1 parent 4f443e8 commit f5faa9c

4 files changed

Lines changed: 24 additions & 26 deletions

File tree

example/src/Onboarding.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ const OnboardingWithProps = ({
266266
options={{
267267
features: ['onboarding_reserves'],
268268
jsonSchemaVersion: {
269-
employment_basic_information: 'latest',
269+
employment_basic_information: 3,
270270
},
271271
jsonSchemaVersionByCountry: {
272272
DEU: {

src/components/form/fields/ForcedValueField.tsx

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -69,30 +69,24 @@ export function ForcedValueField({
6969
// eslint-disable-next-line react-hooks/exhaustive-deps
7070
}, []);
7171

72+
const titleSanitized = statement?.title
73+
? sanitizeHtml(statement?.title)
74+
: sanitizeHtml(label);
7275
return (
7376
<div>
74-
{statement ? (
75-
<>
76-
{/* if statement?.title is undefined which could be for example belgium contract details form, we need to use the label attribute */}
77-
<p
78-
className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}
79-
dangerouslySetInnerHTML={{
80-
__html: sanitizeHtml(statement?.title || label),
81-
}}
82-
/>
83-
<Description
84-
name={name}
85-
description={sanitizeHtml(statement?.description || description)}
86-
helpCenter={helpCenter}
87-
/>
88-
</>
89-
) : (
90-
<Description
91-
name={name}
92-
description={descriptionSanitized}
93-
helpCenter={helpCenter}
77+
{titleSanitized && (
78+
<p
79+
className={`text-sm RemoteFlows__ForcedValue__Title__${name}`}
80+
dangerouslySetInnerHTML={{
81+
__html: titleSanitized,
82+
}}
9483
/>
9584
)}
85+
<Description
86+
name={name}
87+
description={descriptionSanitized}
88+
helpCenter={helpCenter}
89+
/>
9690
</div>
9791
);
9892
}

src/components/form/fields/tests/ForcedValueField.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ describe('ForcedValueField Component', () => {
2929
});
3030

3131
describe('when statement is not provided', () => {
32-
it('renders only the description', () => {
32+
it('renders only the label and description', () => {
3333
renderWithFormContext(defaultProps);
3434

3535
expect(
3636
screen.getByText('This is a test description'),
3737
).toBeInTheDocument();
38-
expect(screen.queryByText('Test Label')).not.toBeInTheDocument();
38+
expect(screen.getByText('Test Label')).toBeInTheDocument();
3939
});
4040
});
4141

src/components/form/utils.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -806,9 +806,13 @@ export function getFieldsWithFlatFieldsets({
806806
return accumulatedFieldsSorted;
807807
}, fields);
808808

809-
const filteredFields = sortedFields.filter(
810-
(field) => !flatFieldsetsFieldNames.has(field.name!),
811-
);
809+
const filteredFields = sortedFields.filter((field) => {
810+
// Always keep the fieldset wrapper
811+
if (field.type === 'fieldset-flat') {
812+
return true;
813+
}
814+
return !flatFieldsetsFieldNames.has(field.name!);
815+
});
812816

813817
return filteredFields;
814818
}

0 commit comments

Comments
 (0)