Skip to content

Commit d590884

Browse files
committed
removes memoization that sometimes causes stale data
1 parent 796b103 commit d590884

File tree

2 files changed

+12
-25
lines changed

2 files changed

+12
-25
lines changed

src/features/formData/useDataModelBindings.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,7 @@ export function useDataModelBindings<B extends IDataModelBindings | undefined, D
5050
const isValid = FD.useBindingsAreValid(bindings);
5151
const { setValue, setValues } = useSaveDataModelBindings(bindings, debounceTimeout);
5252

53-
return useMemo(
54-
() => ({ formData: formData as Output<B, DA>['formData'], setValue, setValues, isValid }),
55-
[formData, isValid, setValue, setValues],
56-
);
53+
return { formData: formData as Output<B, DA>['formData'], setValue, setValues, isValid };
5754
}
5855

5956
export function useSaveDataModelBindings<B extends IDataModelBindings | undefined>(

src/features/options/useGetOptions.ts

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useCallback, useEffect, useMemo } from 'react';
1+
import { useEffect, useMemo } from 'react';
22

33
import { evalExpr } from 'src/features/expressions';
44
import { ExprVal } from 'src/features/expressions/types';
@@ -78,26 +78,16 @@ export function useSetOptions(
7878
const { formData, setValue } = useDataModelBindings(dataModelBindings);
7979
const value = formData.simpleBinding ?? '';
8080

81-
const currentValues = useMemo(
82-
() => (value && value.length > 0 ? (valueType === 'multi' ? value.split(',') : [value]) : []),
83-
[value, valueType],
84-
);
85-
86-
const selectedValues = useMemo(
87-
() => currentValues.filter((value) => options.find((option) => option.value === value)),
88-
[options, currentValues],
89-
);
90-
91-
const setData = useCallback(
92-
(values: string[]) => {
93-
if (valueType === 'single') {
94-
setValue('simpleBinding', values.at(0));
95-
} else if (valueType === 'multi') {
96-
setValue('simpleBinding', values.join(','));
97-
}
98-
},
99-
[setValue, valueType],
100-
);
81+
const currentValues = value && value.length > 0 ? (valueType === 'multi' ? value.split(',') : [value]) : [];
82+
const selectedValues = currentValues.filter((value) => options.find((option) => option.value === value));
83+
84+
function setData(values: string[]) {
85+
if (valueType === 'single') {
86+
setValue('simpleBinding', values.at(0));
87+
} else if (valueType === 'multi') {
88+
setValue('simpleBinding', values.join(','));
89+
}
90+
}
10191

10292
return {
10393
rawData: value,

0 commit comments

Comments
 (0)