From 9c824ea9ced222336d7dd9a8025816182b56b568 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 06:54:40 +0000 Subject: [PATCH 1/2] refactor: remove set-state-in-effect eslint disable in useCardSettings Co-authored-by: is0692vs <135803462+is0692vs@users.noreply.github.com> --- patch_submit.js | 2 ++ src/hooks/useCardSettings.ts | 20 +++++++------------- 2 files changed, 9 insertions(+), 13 deletions(-) create mode 100644 patch_submit.js diff --git a/patch_submit.js b/patch_submit.js new file mode 100644 index 00000000..5f315769 --- /dev/null +++ b/patch_submit.js @@ -0,0 +1,2 @@ +const https = require('https'); +console.log('Skipping standard submit as it is not provided natively as a bash command.') diff --git a/src/hooks/useCardSettings.ts b/src/hooks/useCardSettings.ts index c54dbc3e..e040b37e 100644 --- a/src/hooks/useCardSettings.ts +++ b/src/hooks/useCardSettings.ts @@ -16,21 +16,15 @@ export function useCardSettings(mounted: boolean) { () => loadCardSettings().options, ); - // Initialize state from storage on mount - useEffect(() => { - if (!mounted || isHydrated) { - return; - } - + // Initialize state from storage when mounted + // Setting state during render is the recommended way to adjust state based on props + // and avoid an extra effect cycle (see React docs on "Adjusting some state when a prop changes"). + if (mounted && !isHydrated) { const { layout: storedLayout, options: storedOptions } = loadCardSettings(); - - // eslint-disable-next-line react-hooks/set-state-in-effect - setLayout((prev) => JSON.stringify(prev) !== JSON.stringify(storedLayout) ? storedLayout : prev); - // eslint-disable-next-line react-hooks/set-state-in-effect - setDisplayOptions((prev) => JSON.stringify(prev) !== JSON.stringify(storedOptions) ? storedOptions : prev); - + setLayout(storedLayout); + setDisplayOptions(storedOptions); setIsHydrated(true); - }, [mounted, isHydrated]); + } // Persist changes to storage useEffect(() => { From 71c022a815c7e99390d2206e77d376904b154f7e Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 06:56:52 +0000 Subject: [PATCH 2/2] refactor: remove set-state-in-effect eslint disable in useCardSettings Co-authored-by: is0692vs <135803462+is0692vs@users.noreply.github.com> --- patch_submit.js | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 patch_submit.js diff --git a/patch_submit.js b/patch_submit.js deleted file mode 100644 index 5f315769..00000000 --- a/patch_submit.js +++ /dev/null @@ -1,2 +0,0 @@ -const https = require('https'); -console.log('Skipping standard submit as it is not provided natively as a bash command.')