fix: ensure dispatch is used for actions in useMemoInit hook

This commit is contained in:
Steven 2025-12-25 23:17:34 +08:00
parent 28e4ade009
commit c4dfb85400
1 changed files with 12 additions and 10 deletions

View File

@ -10,7 +10,7 @@ export const useMemoInit = (
username: string,
autoFocus?: boolean,
) => {
const { actions } = useEditorContext();
const { actions, dispatch } = useEditorContext();
const initializedRef = useRef(false);
useEffect(() => {
@ -18,28 +18,30 @@ export const useMemoInit = (
initializedRef.current = true;
const init = async () => {
actions.setLoading("loading", true);
dispatch(actions.setLoading("loading", true));
try {
if (memoName) {
// Load existing memo
const loadedState = await memoService.load(memoName);
actions.initMemo({
content: loadedState.content,
metadata: loadedState.metadata,
timestamps: loadedState.timestamps,
});
dispatch(
actions.initMemo({
content: loadedState.content,
metadata: loadedState.metadata,
timestamps: loadedState.timestamps,
}),
);
} else {
// Load from cache for new memo
const cachedContent = cacheService.load(cacheService.key(username, cacheKey));
if (cachedContent) {
actions.updateContent(cachedContent);
dispatch(actions.updateContent(cachedContent));
}
}
} catch (error) {
console.error("Failed to initialize editor:", error);
} finally {
actions.setLoading("loading", false);
dispatch(actions.setLoading("loading", false));
if (autoFocus) {
setTimeout(() => {
@ -50,5 +52,5 @@ export const useMemoInit = (
};
init();
}, [memoName, cacheKey, username, autoFocus, actions, editorRef]);
}, [memoName, cacheKey, username, autoFocus, actions, dispatch, editorRef]);
};