Skip to content

Commit 86bc4f7

Browse files
authored
Merge pull request #206 from TRA-Tech/fix/add-defaultvalue-prop-dropdown
fix:add default value prop
2 parents a90f96e + aa2dbed commit 86bc4f7

3 files changed

Lines changed: 12 additions & 13 deletions

File tree

src/components/Dropdown/Dropdown.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ const Dropdown: FCCWD<DrowdownProps> = (
2727
autoPosition = true,
2828
size = 'medium',
2929
disabled,
30-
value,
30+
defaultValue = {},
3131
testID,
3232
theme },
3333
) => {
3434
const [visible, setVisible] = useState(false);
35-
const [selectedObject, setSelectedObject] = useState(value || {});
35+
const [selectedObject, setSelectedObject] = useState(defaultValue);
3636
const [cord, setCord] = useState({ x: 0, y: 0, height: 0, width: 0 });
3737
const { statusTheme, componentTheme } = useComponentTheme(
3838
theme,
@@ -86,12 +86,6 @@ const Dropdown: FCCWD<DrowdownProps> = (
8686
openAnimation.value = withSpring(visible ? 1 : 0);
8787
}, [visible]);
8888

89-
useEffect(() => {
90-
if (value) {
91-
setSelectedObject(value);
92-
}
93-
}, [value]);
94-
9589
return (
9690
<View testID={testID} style={[containerStyle, { zIndex: visible ? 1000 : 0 }]}>
9791
<TouchableOpacity

src/components/Dropdown/MultipleSelectDropdown.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ const MultipleDropdown: FCCWD<MultipleDropdownProps> = (
3636
disabled,
3737
testID,
3838
theme,
39-
value,
39+
defaultValue = [],
4040
size = 'medium',
4141
completeButtonLabelStyle,
4242
completeButtonLabel },
4343
) => {
4444
const [visible, setVisible] = useState(false);
45-
const [selectedObjects, setSelectedObjects] = useState(value || []);
45+
const [selectedObjects, setSelectedObjects] = useState(defaultValue);
4646
const [cord, setCord] = useState({ x: 0, y: 0, height: 0, width: 0 });
4747
const openAnimation = useSharedValue(0);
4848
const dataWithID = useRef();
@@ -84,6 +84,7 @@ const MultipleDropdown: FCCWD<MultipleDropdownProps> = (
8484
const selectedObjectsTemp = [...selectedObjects];
8585

8686
const valueIndex = selectedObjectsTemp.findIndex(obj => displayedRowValue(obj) === displayedRowValue(value));
87+
console.log(valueIndex);
8788

8889
if (valueIndex > -1) {
8990
selectedObjectsTemp.splice(valueIndex, 1);
@@ -120,10 +121,10 @@ const MultipleDropdown: FCCWD<MultipleDropdownProps> = (
120121
}, [data]);
121122

122123
useEffect(() => {
123-
if (value) {
124-
setSelectedObjects(value);
124+
if (defaultValue.length > 0) {
125+
setSelectedObjects(defaultValue);
125126
}
126-
}, [value]);
127+
}, []);
127128

128129
return (
129130
<View testID={testID} style={[containerStyle, { zIndex: visible ? 1000 : 0 }]}>

src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,10 @@ export type DrowdownProps = {
378378
*Function to be called whenever an item is selected in the dropdown
379379
*/
380380
onSelect?: (item: any) => void,
381+
/**
382+
*Default value to be pre-selected in the dropdown
383+
*/
384+
defaultValue?: any,
381385
/**
382386
*Additional styles to apply to the text inside each item in the dropdown
383387
*/

0 commit comments

Comments
 (0)