Skip to content

Commit 8f71bf4

Browse files
Sabanturaymond-lam
authored andcommitted
Allow ui:column to be configured for sections.
1 parent 12b1f37 commit 8f71bf4

File tree

2 files changed

+37
-31
lines changed

2 files changed

+37
-31
lines changed

src/formBuilder/CardModal.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
// @flow
22

3+
import type { Node } from 'react';
34
import * as React from 'react';
5+
import { createUseStyles } from 'react-jss';
46
import {
5-
Modal,
6-
ModalHeader,
77
Button,
8+
Input,
9+
Modal,
810
ModalBody,
911
ModalFooter,
10-
Input,
12+
ModalHeader,
1113
} from 'reactstrap';
12-
import { createUseStyles } from 'react-jss';
1314
import DependencyField from './dependencies/DependencyField';
14-
import type { Node } from 'react';
15-
import type { Parameters } from './types';
1615
import Tooltip from './Tooltip';
16+
import type { Parameters } from './types';
1717

1818
const useStyles = createUseStyles({
1919
cardModal: {
@@ -64,7 +64,6 @@ export default function CardModal({
6464
React.useEffect(() => {
6565
setComponentProps(componentProps);
6666
}, [componentProps]);
67-
6867
return (
6968
<Modal isOpen={isOpen} data-test='card-modal' className={classes.cardModal}>
7069
<ModalHeader className='card-modal-header'>
@@ -99,15 +98,17 @@ export default function CardModal({
9998
</h4>
10099
<Input
101100
value={
102-
componentProps['ui:column'] ? componentProps['ui:column'] : ''
101+
componentPropsState['ui:column']
102+
? componentPropsState['ui:column']
103+
: ''
103104
}
104105
placeholder='Column size'
105106
key='ui:column'
106107
type='number'
107108
min={0}
108109
onChange={(ev: SyntheticInputEvent<HTMLInputElement>) => {
109-
onChange({
110-
...componentProps,
110+
setComponentProps({
111+
...componentPropsState,
111112
'ui:column': ev.target.value,
112113
});
113114
}}

src/formBuilder/Section.js

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,39 @@
11
// @flow
2-
import React, { useState } from 'react';
3-
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
4-
import Select from 'react-select';
2+
import {
3+
faArrowDown,
4+
faArrowUp,
5+
faPencilAlt,
6+
faTrash,
7+
} from '@fortawesome/free-solid-svg-icons';
8+
import type { Node } from 'react';
9+
import React from 'react';
10+
import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
511
import { createUseStyles } from 'react-jss';
12+
import Select from 'react-select';
613
import {
714
Alert,
15+
FormFeedback,
16+
FormGroup,
817
Input,
918
UncontrolledTooltip,
10-
FormGroup,
11-
FormFeedback,
1219
} from 'reactstrap';
13-
import {
14-
faArrowUp,
15-
faArrowDown,
16-
faPencilAlt,
17-
faTrash,
18-
} from '@fortawesome/free-solid-svg-icons';
20+
import Add from './Add';
21+
import Card from './Card';
22+
import CardModal from './CardModal';
1923
import FBCheckbox from './checkbox/FBCheckbox';
2024
import Collapse from './Collapse/Collapse';
21-
import CardModal from './CardModal';
2225
import { CardDefaultParameterInputs } from './defaults/defaultInputs';
26+
import FontAwesomeIcon from './FontAwesomeIcon';
2327
import Tooltip from './Tooltip';
24-
import Add from './Add';
25-
import Card from './Card';
2628
import {
27-
checkForUnsupportedFeatures,
28-
generateElementComponentsFromSchemas,
29-
countElementsFromSchema,
3029
addCardObj,
3130
addSectionObj,
31+
checkForUnsupportedFeatures,
32+
countElementsFromSchema,
33+
generateElementComponentsFromSchemas,
34+
getRandomId,
3235
onDragEnd,
3336
} from './utils';
34-
import FontAwesomeIcon from './FontAwesomeIcon';
35-
import { getRandomId } from './utils';
36-
import type { Node } from 'react';
37-
import type { FormInput, Mods } from './types';
3837

3938
const useStyles = createUseStyles({
4039
sectionContainer: {
@@ -506,11 +505,17 @@ export default function Section({
506505
name: keyName,
507506
schema,
508507
type: 'object',
508+
'ui:column': uischema['ui:column'] ?? '',
509509
}}
510510
isOpen={modalOpen}
511511
onClose={() => setModalOpen(false)}
512512
onChange={(newComponentProps: { [string]: any }) => {
513513
onDependentsChange(newComponentProps.dependents);
514+
515+
onChange(schema, {
516+
...uischema,
517+
'ui:column': newComponentProps['ui:column'],
518+
});
514519
}}
515520
TypeSpecificParameters={CardDefaultParameterInputs}
516521
/>

0 commit comments

Comments
 (0)