From 8a0d0977ca76924ae56799de4a3bd75aaec6d3c5 Mon Sep 17 00:00:00 2001 From: Richard Date: Sat, 30 Mar 2024 02:00:07 -0700 Subject: [PATCH] fix: call selector with atom state --- src/react/useAtomState.luau | 2 +- src/react/useSetAtom.luau | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/react/useAtomState.luau b/src/react/useAtomState.luau index e04f557..b6da1ee 100644 --- a/src/react/useAtomState.luau +++ b/src/react/useAtomState.luau @@ -13,7 +13,7 @@ local function useAtomState(atom: Atom, selector: ((State) -> Stat local React = requireReact() local state, setState = React.useState(function() - return if selector then atom(selector) else atom() + return if selector then selector(atom()) else atom() end) local latestSelector = React.useRef(selector) diff --git a/src/react/useSetAtom.luau b/src/react/useSetAtom.luau index 8d3ff7b..762befb 100644 --- a/src/react/useSetAtom.luau +++ b/src/react/useSetAtom.luau @@ -6,7 +6,9 @@ type Atom = types.Atom export type SetState = (T | ((T) -> T)) -> () local function useSetAtom(atom: Atom): SetState - return requireReact().useCallback(function(state: State | ((State) -> State)): () + local React = requireReact() + + return React.useCallback(function(state: State | ((State) -> State)): () atom(state) end, { atom }) end