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:
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>;
// }