Skip to content

Commit

Permalink
fix(nami): missing value dependency in useCallback (#1598)
Browse files Browse the repository at this point in the history
Asset callbacks used state values but did not list them
as dependency.
Another issue is that state was mutated directly
before setting it.
  • Loading branch information
mirceahasegan committed Dec 17, 2024
1 parent 7b37772 commit adba716
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions packages/nami/src/ui/app/pages/send.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ const Send = ({
setValue({ ...value, assets: assetsList });
});
},
[triggerTxUpdate, setValue],
[triggerTxUpdate, setValue, value],
);

const removeAsset = useCallback(
Expand All @@ -403,7 +403,7 @@ const Send = ({
setValue({ ...value, assets: assetsList });
});
},
[assets.current, triggerTxUpdate, setValue],
[assets.current, triggerTxUpdate, setValue, value],
);

React.useEffect(() => {
Expand Down Expand Up @@ -433,13 +433,12 @@ const Send = ({
async (asset: Readonly<AssetInput>, val: string) => {
if (!assets.current[asset.unit]) return;
assets.current[asset.unit].input = val;
const v = value;
v.assets = objectToArray(assets.current);
const newValue = { ...value, assets: objectToArray(assets.current) };
triggerTxUpdate(() => {
setValue({ ...v, assets: v.assets });
setValue(newValue);
});
},
[assets.current, triggerTxUpdate, setValue],
[assets.current, triggerTxUpdate, setValue, value],
);

const setMessageDebounced = useMemo(() => debounce(setMessage, 300), []);
Expand Down Expand Up @@ -574,12 +573,11 @@ const Send = ({
decimalScale={6}
onInput={e => {
const val = e.target.value;
value.ada = val;
value.personalAda = val;
const v = value;
triggerTxUpdate(() => {
setValue({
...v,
...value,
ada: val,
personalAda: val,
});
});
}}
Expand Down

0 comments on commit adba716

Please sign in to comment.