fix: stabilize store functions with selectors to prevent infinite loop

- Use usePluginToolbarStore((s) => s.registerItems) selector pattern
- Remove store functions from useEffect dependency array
- Store functions are stable references from zustand selectors
This commit is contained in:
Agent Zero
2026-07-15 13:10:27 +02:00
parent 1f01f2182a
commit 5693fe1c3a
+3 -2
View File
@@ -282,7 +282,8 @@ export function MailPage() {
}, []); }, []);
// Register toolbar items // Register toolbar items
const { registerItems, unregisterPlugin } = usePluginToolbarStore(); const registerItems = usePluginToolbarStore((s) => s.registerItems);
const unregisterPlugin = usePluginToolbarStore((s) => s.unregisterPlugin);
const selectedMailId = selectedMail?.id; const selectedMailId = selectedMail?.id;
const selectedMailFlagged = selectedMail?.is_flagged; const selectedMailFlagged = selectedMail?.is_flagged;
useEffect(() => { useEffect(() => {
@@ -370,7 +371,7 @@ export function MailPage() {
}, },
]); ]);
return () => unregisterPlugin('mail'); return () => unregisterPlugin('mail');
}, [registerItems, unregisterPlugin, accounts, selectedAccountId, selectedMailId, selectedMailFlagged, handleAccountSwitch, handleSearch, handleCompose, handleReply, handleForward, handleToggleFlag, handleCreateEvent]); }, [accounts, selectedAccountId, selectedMailId, selectedMailFlagged, handleAccountSwitch, handleSearch, handleCompose, handleReply, handleForward, handleToggleFlag, handleCreateEvent]);
if (loadingAccounts) { if (loadingAccounts) {
return ( return (