taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit fa01e5b4dc7a230d858cebaa0fda87bc28bacc19
parent eaf59d5422321a470154f8cb2303f43dba4f3636
Author: Sebastian <sebasjm@taler-systems.com>
Date:   Wed, 22 Jul 2026 15:45:56 -0300

update handler when doBack/doNext changes

Diffstat:
Mpackages/anastasis-webui/src/pages/home/index.tsx | 15+++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/packages/anastasis-webui/src/pages/home/index.tsx b/packages/anastasis-webui/src/pages/home/index.tsx @@ -112,15 +112,16 @@ let currentHistoryId = 0; export function AnastasisClientFrame(props: AnastasisClientFrameProps): VNode { const reducer = useAnastasisContext(); - const doBack = async (): Promise<void> => { + const doBack = useCallback(async (): Promise<void> => { if (props.onBack) { await props.onBack(); } else { if (!reducer) return; await reducer.back(); } - }; - const doNext = async (fromPopstate?: boolean): Promise<void> => { + },[props.onBack]); + + const doNext = useCallback(async (fromPopstate?: boolean): Promise<void> => { if (!fromPopstate) { try { const nextId: number = @@ -142,7 +143,8 @@ export function AnastasisClientFrame(props: AnastasisClientFrameProps): VNode { if (!reducer) return; await reducer.transition("next", {}); } - }; + },[props.onNext]); + const handleKeyPress = ( e: h.JSX.TargetedKeyboardEvent<HTMLDivElement>, ): void => { @@ -160,14 +162,15 @@ export function AnastasisClientFrame(props: AnastasisClientFrameProps): VNode { // reducer return false; - }, []); + }, [doBack, doNext]); + useEffect(() => { window.addEventListener("popstate", browserOnBackButton); return () => { window.removeEventListener("popstate", browserOnBackButton); }; - }, []); + }, [browserOnBackButton]); // if (!reducer) { // return <p>Fatal: Reducer must be in context.</p>; // }