Skip to content

Commit 3894e01

Browse files
authored
feat(TMC-25993): change default UIForm collapsible panel title (#5426)
* feat(TMC-25993): change default UIForm collapsible panel title * fix test * fix test
1 parent 7665092 commit 3894e01

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

.changeset/shiny-mirrors-fail.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@talend/react-forms': minor
3+
---
4+
5+
feat: Better handle collapsible fieldset title for UIForm definitions by using schema title by default

packages/forms/src/UIForm/fieldsets/CollapsibleFieldset/CollapsibleFieldset.component.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ function getDrillKey(key) {
3232
}
3333

3434
export function defaultTitle(formData, schema, options) {
35+
if (schema.title) {
36+
return schema.title;
37+
}
38+
3539
const title = (schema.items || []).reduce((acc, item) => {
3640
let value;
3741
if (item.key) {
@@ -66,7 +70,7 @@ export function defaultTitle(formData, schema, options) {
6670
return schema.options.emptyTitleFallback;
6771
}
6872

69-
return schema.title;
73+
return '';
7074
}
7175

7276
/**

packages/forms/src/UIForm/fieldsets/CollapsibleFieldset/CollapsibleFieldset.component.test.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ function customTitle(value, schema) {
1414
}
1515

1616
const schema = {
17-
title: 'Basic',
1817
description: 'This is description',
1918
items: [
2019
{
@@ -68,7 +67,10 @@ const defaultTitleMockData = {
6867

6968
const props = {
7069
id: 'my-fieldset',
71-
schema,
70+
schema: {
71+
...schema,
72+
title: 'Basic',
73+
},
7274
value,
7375
onChange: jest.fn(),
7476
};
@@ -91,7 +93,7 @@ describe('CollapsibleFieldset', () => {
9193
<CollapsibleFieldset {...props} value={{ ...value, isClosed: true }} />
9294
</WidgetContext.Provider>,
9395
);
94-
expect(screen.getByText('Jimmy, Somsanith')).toBeInTheDocument();
96+
expect(screen.getByText('Basic')).toBeInTheDocument();
9597
expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'false');
9698
});
9799
it('should render a custom title', () => {
@@ -182,11 +184,11 @@ describe('CollapsibleFieldset', () => {
182184
});
183185

184186
describe('defaultTitle', () => {
185-
it('should return schema.title by default if no emptyTitleFallback has been provided in options', () => {
187+
it('should return schema.title by default', () => {
186188
// given not used in an array you have the schema.title
187189
expect(defaultTitle({}, { title: 'Comment' })).toBe('Comment');
188190
// given no value, you have the schema.title
189-
expect(defaultTitle({}, schema)).toBe(schema.title);
191+
expect(defaultTitle({}, schema)).toBe('');
190192
});
191193

192194
it('should return if emptyTitleFallback has been provided and computed title is empty', () => {
@@ -218,7 +220,6 @@ describe('defaultTitle', () => {
218220
});
219221
it('should support recursive call on deeper objects', () => {
220222
const complexSchema = {
221-
title: 'Basic',
222223
items: [
223224
{
224225
key: ['type'],

packages/forms/src/UIForm/fieldsets/CollapsibleFieldset/__snapshots__/CollapsibleFieldset.component.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ exports[`CollapsibleFieldset should render 1`] = `
3434
<span
3535
class="theme-headerTitle"
3636
>
37-
Jimmy, Somsanith
37+
Basic
3838
</span>
3939
</button>
4040
<div

0 commit comments

Comments
 (0)