Skip to content

Commit b403bdc

Browse files
fix(Form): Use shared context for Form and FormItem (#275)
every form item had his own context as it was part of the bundled file. Now the Form shares a context with the FormItems. Fixes #274
1 parent 2211d4a commit b403bdc

File tree

6 files changed

+22
-17
lines changed

6 files changed

+22
-17
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import React from 'react';
1+
import { createContext } from 'react';
22

3-
const CurrentRange = React.createContext(null);
3+
const CurrentViewportRangeContext = createContext(null);
44

5-
export { CurrentRange };
5+
export { CurrentViewportRangeContext };

packages/main/src/components/Form/FormItem/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { CurrentViewportRangeContext } from '@ui5/webcomponents-react/lib/CurrentViewportRangeContext';
12
import { Label } from '@ui5/webcomponents-react/lib/Label';
23
import React, { FC, forwardRef, ReactNode, ReactNodeArray, Ref, useContext, useMemo } from 'react';
34
import { createUseStyles } from 'react-jss';
4-
import { CurrentRange } from '../CurrentViewportRangeContext';
55
import { styles } from '../Form.jss';
66

77
export interface FormItemProps {
@@ -22,7 +22,7 @@ const useStyles = createUseStyles<keyof ReturnType<typeof styles>>(styles, { nam
2222
const FormItem: FC<FormItemProps> = forwardRef((props: FormItemProps, ref: Ref<HTMLDivElement>) => {
2323
const { labelText, children } = props;
2424

25-
const currentRange = useContext(CurrentRange);
25+
const currentRange = useContext(CurrentViewportRangeContext);
2626

2727
const classes = useStyles();
2828
const topDivClass = classes.formItemTopDiv;

packages/main/src/components/Form/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { usePassThroughHtmlProps } from '@ui5/webcomponents-react-base/lib/usePassThroughHtmlProps';
22
import { useViewportRange } from '@ui5/webcomponents-react-base/lib/useViewportRange';
3+
import { CurrentViewportRangeContext } from '@ui5/webcomponents-react/lib/CurrentViewportRangeContext';
34
import { Grid } from '@ui5/webcomponents-react/lib/Grid';
45
import { Title } from '@ui5/webcomponents-react/lib/Title';
56
import { TitleLevel } from '@ui5/webcomponents-react/lib/TitleLevel';
67
import React, { FC, forwardRef, ReactElement, ReactNode, ReactNodeArray, Ref, useMemo } from 'react';
78
import { createUseStyles } from 'react-jss';
89
import { CommonProps } from '../../interfaces/CommonProps';
9-
import { CurrentRange } from './CurrentViewportRangeContext';
1010
import { styles } from './Form.jss';
1111
import { FormGroup } from './FormGroup';
1212

@@ -68,7 +68,7 @@ const Form: FC<FormPropTypes> = forwardRef((props: FormPropTypes, ref: Ref<HTMLD
6868
const passThroughProps = usePassThroughHtmlProps(props);
6969

7070
return (
71-
<CurrentRange.Provider value={currentRange}>
71+
<CurrentViewportRangeContext.Provider value={currentRange}>
7272
{updatedTitle && (
7373
<>
7474
<Title level={TitleLevel.H3} className={classes.formTitle}>
@@ -78,7 +78,7 @@ const Form: FC<FormPropTypes> = forwardRef((props: FormPropTypes, ref: Ref<HTMLD
7878
</>
7979
)}
8080
<Grid ref={ref} children={formGroups} defaultSpan={'XL6 L12 M12 S12'} {...passThroughProps} />
81-
</CurrentRange.Provider>
81+
</CurrentViewportRangeContext.Provider>
8282
);
8383
});
8484

packages/main/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { Carousel } from './lib/Carousel';
2525
import { CarouselArrowsPlacement } from './lib/CarouselArrowsPlacement';
2626
import { CheckBox } from './lib/CheckBox';
2727
import { ContentDensity } from './lib/ContentDensity';
28+
import { CurrentViewportRangeContext } from './lib/CurrentViewportRangeContext';
2829
import { CustomListItem } from './lib/CustomListItem';
2930
import { DatePicker } from './lib/DatePicker';
3031
import { DeviationIndicator } from './lib/DeviationIndicator';
@@ -98,13 +99,13 @@ import { StandardListItem } from './lib/StandardListItem';
9899
import { Switch } from './lib/Switch';
99100
import { Tab } from './lib/Tab';
100101
import { TabContainer } from './lib/TabContainer';
102+
import { TabSeparator } from './lib/TabSeparator';
101103
import { Table } from './lib/Table';
102104
import { TableCell } from './lib/TableCell';
103105
import { TableColumn } from './lib/TableColumn';
104106
import { TablePlaceholder } from './lib/TablePlaceholder';
105107
import { TableRow } from './lib/TableRow';
106108
import { TableSelectionMode } from './lib/TableSelectionMode';
107-
import { TabSeparator } from './lib/TabSeparator';
108109
import { Text } from './lib/Text';
109110
import { TextAlign } from './lib/TextAlign';
110111
import { TextArea } from './lib/TextArea';
@@ -145,6 +146,7 @@ export {
145146
CarouselArrowsPlacement,
146147
CheckBox,
147148
ContentDensity,
149+
CurrentViewportRangeContext,
148150
CustomListItem,
149151
DatePicker,
150152
DeviationIndicator,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { CurrentViewportRangeContext } from '../components/Form/CurrentViewportRangeContext';
2+
3+
export { CurrentViewportRangeContext };

scripts/rollup/results.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,29 @@
1818
"filename": "base.development.js",
1919
"bundleType": "NODE_DEV",
2020
"packageName": "base",
21-
"size": 56207,
22-
"gzip": 12373
21+
"size": 56211,
22+
"gzip": 12372
2323
},
2424
{
2525
"filename": "base.production.min.js",
2626
"bundleType": "NODE_PROD",
2727
"packageName": "base",
28-
"size": 56207,
29-
"gzip": 12373
28+
"size": 56211,
29+
"gzip": 12372
3030
},
3131
{
3232
"filename": "main.development.js",
3333
"bundleType": "NODE_DEV",
3434
"packageName": "main",
35-
"size": 135289,
36-
"gzip": 35285
35+
"size": 135494,
36+
"gzip": 35351
3737
},
3838
{
3939
"filename": "main.production.min.js",
4040
"bundleType": "NODE_PROD",
4141
"packageName": "main",
42-
"size": 135289,
43-
"gzip": 35285
42+
"size": 135494,
43+
"gzip": 35351
4444
}
4545
]
4646
}

0 commit comments

Comments
 (0)