diff --git a/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryChaptersPanel.tsx b/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryChaptersPanel.tsx index ea970b7ae8..7a507175d9 100644 --- a/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryChaptersPanel.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryChaptersPanel.tsx @@ -30,7 +30,7 @@ export const GalleryChapterPanel: React.FC = ({ return () => { Mousetrap.unbind("n"); }; - }); + }, [isVisible]); function onOpenEditor(chapter?: GQL.GalleryChapterDataFragment) { setIsEditorOpen(true); diff --git a/ui/v2.5/src/components/Galleries/GalleryList.tsx b/ui/v2.5/src/components/Galleries/GalleryList.tsx index abb2bdda81..af905a8f03 100644 --- a/ui/v2.5/src/components/Galleries/GalleryList.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryList.tsx @@ -324,7 +324,7 @@ export const FilteredGalleryList = PatchComponent( Mousetrap.unbind("e"); Mousetrap.unbind("d d"); }; - }); + }, []); const onCloseEditDelete = useCloseEditDelete({ closeModal, diff --git a/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx b/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx index b2b3d8176e..bc75539a8b 100644 --- a/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx +++ b/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx @@ -243,7 +243,7 @@ const GroupPage: React.FC = ({ group, tabKey }) => { Mousetrap.unbind("e"); Mousetrap.unbind("d d"); }; - }); + }, []); useRatingKeybinds( true, diff --git a/ui/v2.5/src/components/Groups/GroupDetails/GroupEditPanel.tsx b/ui/v2.5/src/components/Groups/GroupDetails/GroupEditPanel.tsx index 6401738fac..7bf884511c 100644 --- a/ui/v2.5/src/components/Groups/GroupDetails/GroupEditPanel.tsx +++ b/ui/v2.5/src/components/Groups/GroupDetails/GroupEditPanel.tsx @@ -172,7 +172,7 @@ export const GroupEditPanel: React.FC = ({ // Mousetrap.unbind("u"); Mousetrap.unbind("s s"); }; - }); + }, []); function updateGroupEditStateFromScraper( state: Partial diff --git a/ui/v2.5/src/components/Groups/GroupList.tsx b/ui/v2.5/src/components/Groups/GroupList.tsx index 69961f7837..d67b2fcf53 100644 --- a/ui/v2.5/src/components/Groups/GroupList.tsx +++ b/ui/v2.5/src/components/Groups/GroupList.tsx @@ -288,7 +288,7 @@ export const FilteredGroupList = PatchComponent( Mousetrap.unbind("e"); Mousetrap.unbind("d d"); }; - }); + }, []); const onCloseEditDelete = useCloseEditDelete({ closeModal, diff --git a/ui/v2.5/src/components/Images/ImageDetails/Image.tsx b/ui/v2.5/src/components/Images/ImageDetails/Image.tsx index f885c21bbe..35e5f50b31 100644 --- a/ui/v2.5/src/components/Images/ImageDetails/Image.tsx +++ b/ui/v2.5/src/components/Images/ImageDetails/Image.tsx @@ -298,7 +298,7 @@ const ImagePage: React.FC = ({ image }) => { Mousetrap.unbind("f"); Mousetrap.unbind("o"); }; - }); + }, []); const file = useMemo( () => (image.visual_files.length > 0 ? image.visual_files[0] : undefined), diff --git a/ui/v2.5/src/components/Images/ImageDetails/ImageEditPanel.tsx b/ui/v2.5/src/components/Images/ImageDetails/ImageEditPanel.tsx index 94dddac4b4..87e4f85b5a 100644 --- a/ui/v2.5/src/components/Images/ImageDetails/ImageEditPanel.tsx +++ b/ui/v2.5/src/components/Images/ImageDetails/ImageEditPanel.tsx @@ -177,7 +177,7 @@ export const ImageEditPanel: React.FC = ({ Mousetrap.unbind("d d"); }; } - }); + }, [isVisible]); const fragmentScrapers = useMemo(() => { return (scrapers?.data?.listScrapers ?? []).filter((s) => diff --git a/ui/v2.5/src/components/List/EditFilterDialog.tsx b/ui/v2.5/src/components/List/EditFilterDialog.tsx index 3f0f486b8c..0a6b3356e7 100644 --- a/ui/v2.5/src/components/List/EditFilterDialog.tsx +++ b/ui/v2.5/src/components/List/EditFilterDialog.tsx @@ -359,7 +359,7 @@ export const EditFilterDialog: React.FC = ({ return () => { Mousetrap.unbind("/"); }; - }); + }, []); async function updatePinnedFilters(filters: string[]) { const configKey = filterModeToConfigKey(currentFilter.mode); diff --git a/ui/v2.5/src/components/List/ListFilter.tsx b/ui/v2.5/src/components/List/ListFilter.tsx index ff3be0360a..64332461ac 100644 --- a/ui/v2.5/src/components/List/ListFilter.tsx +++ b/ui/v2.5/src/components/List/ListFilter.tsx @@ -86,7 +86,7 @@ export const SearchTermInput: React.FC<{ return () => { Mousetrap.unbind("/"); }; - }); + }, []); function onSetQuery(value: string) { setLocalInput(value); diff --git a/ui/v2.5/src/components/List/ListViewOptions.tsx b/ui/v2.5/src/components/List/ListViewOptions.tsx index b681e086d5..4c049f2ad1 100644 --- a/ui/v2.5/src/components/List/ListViewOptions.tsx +++ b/ui/v2.5/src/components/List/ListViewOptions.tsx @@ -105,7 +105,7 @@ export const ListViewOptions: React.FC = ({ Mousetrap.unbind("v w"); Mousetrap.unbind("v t"); }; - }); + }, []); function onChangeZoom(v: number) { if (onSetZoom) { diff --git a/ui/v2.5/src/components/List/ZoomSlider.tsx b/ui/v2.5/src/components/List/ZoomSlider.tsx index 093b5ec7ae..36913fff31 100644 --- a/ui/v2.5/src/components/List/ZoomSlider.tsx +++ b/ui/v2.5/src/components/List/ZoomSlider.tsx @@ -26,7 +26,7 @@ export function useZoomKeybinds(props: { Mousetrap.unbind("+"); Mousetrap.unbind("-"); }; - }); + }, []); } export interface IZoomSelectProps { diff --git a/ui/v2.5/src/components/MainNavbar.tsx b/ui/v2.5/src/components/MainNavbar.tsx index c709944766..57f768f778 100644 --- a/ui/v2.5/src/components/MainNavbar.tsx +++ b/ui/v2.5/src/components/MainNavbar.tsx @@ -276,7 +276,7 @@ export const MainNavbar: React.FC = () => { Mousetrap.unbind("n"); } }; - }); + }, []); function maybeRenderLogout() { if (SessionUtils.isLoggedIn()) { diff --git a/ui/v2.5/src/components/Performers/PerformerDetails/Performer.tsx b/ui/v2.5/src/components/Performers/PerformerDetails/Performer.tsx index 92a563a81e..be393bd604 100644 --- a/ui/v2.5/src/components/Performers/PerformerDetails/Performer.tsx +++ b/ui/v2.5/src/components/Performers/PerformerDetails/Performer.tsx @@ -112,7 +112,7 @@ const PerformerTabs: React.FC<{ Mousetrap.unbind("g"); Mousetrap.unbind("m"); }; - }); + }, []); return ( = PatchComponent( Mousetrap.unbind("f"); Mousetrap.unbind(","); }; - }); + }, []); async function onSave(input: GQL.PerformerCreateInput) { await updatePerformer({ diff --git a/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx b/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx index 6d5570ef08..3fc93b58df 100644 --- a/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx +++ b/ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx @@ -383,7 +383,7 @@ export const PerformerEditPanel: React.FC = ({ } }; } - }); + }, [isVisible]); useEffect(() => { const newQueryableScrapers = (Scrapers?.data?.listScrapers ?? []).filter( diff --git a/ui/v2.5/src/components/Performers/PerformerList.tsx b/ui/v2.5/src/components/Performers/PerformerList.tsx index c2db288bcd..0664c4ab9a 100644 --- a/ui/v2.5/src/components/Performers/PerformerList.tsx +++ b/ui/v2.5/src/components/Performers/PerformerList.tsx @@ -447,7 +447,7 @@ export const FilteredPerformerList = PatchComponent( Mousetrap.unbind("e"); Mousetrap.unbind("d d"); }; - }); + }, []); const onCloseEditDelete = useCloseEditDelete({ closeModal, diff --git a/ui/v2.5/src/components/Scenes/SceneDetails/Scene.tsx b/ui/v2.5/src/components/Scenes/SceneDetails/Scene.tsx index 7d1b245fc8..3dc433e802 100644 --- a/ui/v2.5/src/components/Scenes/SceneDetails/Scene.tsx +++ b/ui/v2.5/src/components/Scenes/SceneDetails/Scene.tsx @@ -280,7 +280,7 @@ const ScenePage: React.FC = PatchComponent("ScenePage", (props) => { Mousetrap.unbind("c c"); Mousetrap.unbind("c d"); }; - }); + }, []); async function onSave(input: GQL.SceneCreateInput) { await updateScene({ diff --git a/ui/v2.5/src/components/Scenes/SceneDetails/SceneEditPanel.tsx b/ui/v2.5/src/components/Scenes/SceneDetails/SceneEditPanel.tsx index 41293ff787..f381d90ab3 100644 --- a/ui/v2.5/src/components/Scenes/SceneDetails/SceneEditPanel.tsx +++ b/ui/v2.5/src/components/Scenes/SceneDetails/SceneEditPanel.tsx @@ -257,7 +257,7 @@ export const SceneEditPanel: React.FC = ({ Mousetrap.unbind("d d"); }; } - }); + }, [isVisible]); useEffect(() => { const toFilter = Scrapers?.data?.listScrapers ?? []; diff --git a/ui/v2.5/src/components/Scenes/SceneDetails/SceneMarkersPanel.tsx b/ui/v2.5/src/components/Scenes/SceneDetails/SceneMarkersPanel.tsx index 28a6e4d988..5c22fdd267 100644 --- a/ui/v2.5/src/components/Scenes/SceneDetails/SceneMarkersPanel.tsx +++ b/ui/v2.5/src/components/Scenes/SceneDetails/SceneMarkersPanel.tsx @@ -36,7 +36,7 @@ export const SceneMarkersPanel: React.FC = ({ return () => { Mousetrap.unbind("n"); }; - }); + }, [isVisible]); if (loading) return null; diff --git a/ui/v2.5/src/components/Studios/StudioDetails/Studio.tsx b/ui/v2.5/src/components/Studios/StudioDetails/Studio.tsx index 0096851e28..3f016984cb 100644 --- a/ui/v2.5/src/components/Studios/StudioDetails/Studio.tsx +++ b/ui/v2.5/src/components/Studios/StudioDetails/Studio.tsx @@ -354,7 +354,7 @@ const StudioPage: React.FC = ({ studio, tabKey }) => { Mousetrap.unbind(","); Mousetrap.unbind("f"); }; - }); + }, []); useRatingKeybinds( true, diff --git a/ui/v2.5/src/components/Studios/StudioDetails/StudioEditPanel.tsx b/ui/v2.5/src/components/Studios/StudioDetails/StudioEditPanel.tsx index 490f09a550..ad8d830c4b 100644 --- a/ui/v2.5/src/components/Studios/StudioDetails/StudioEditPanel.tsx +++ b/ui/v2.5/src/components/Studios/StudioDetails/StudioEditPanel.tsx @@ -147,7 +147,7 @@ export const StudioEditPanel: React.FC = ({ return () => { Mousetrap.unbind("s s"); }; - }); + }, []); async function onSave(input: InputValues, andNew?: boolean) { setIsLoading(true); diff --git a/ui/v2.5/src/components/Studios/StudioList.tsx b/ui/v2.5/src/components/Studios/StudioList.tsx index b75e9782b8..24b02d57c3 100644 --- a/ui/v2.5/src/components/Studios/StudioList.tsx +++ b/ui/v2.5/src/components/Studios/StudioList.tsx @@ -274,7 +274,7 @@ export const FilteredStudioList = PatchComponent( Mousetrap.unbind("e"); Mousetrap.unbind("d d"); }; - }); + }, []); const onCloseEditDelete = useCloseEditDelete({ closeModal, diff --git a/ui/v2.5/src/components/Tags/TagDetails/Tag.tsx b/ui/v2.5/src/components/Tags/TagDetails/Tag.tsx index 76442b6392..61dc5b8664 100644 --- a/ui/v2.5/src/components/Tags/TagDetails/Tag.tsx +++ b/ui/v2.5/src/components/Tags/TagDetails/Tag.tsx @@ -359,7 +359,7 @@ const TagPage: React.FC = ({ tag, tabKey }) => { Mousetrap.unbind(","); Mousetrap.unbind("f"); }; - }); + }, []); async function onSave(input: GQL.TagCreateInput) { const oldRelations = { diff --git a/ui/v2.5/src/components/Tags/TagList.tsx b/ui/v2.5/src/components/Tags/TagList.tsx index 5a938bd451..40cd2fb605 100644 --- a/ui/v2.5/src/components/Tags/TagList.tsx +++ b/ui/v2.5/src/components/Tags/TagList.tsx @@ -276,7 +276,7 @@ export const FilteredTagList = PatchComponent( Mousetrap.unbind("e"); Mousetrap.unbind("d d"); }; - }); + }, []); const onCloseEditDelete = useCloseEditDelete({ closeModal, diff --git a/ui/v2.5/src/hooks/LocalForage.ts b/ui/v2.5/src/hooks/LocalForage.ts index cbb1ff64c2..2c0183436d 100644 --- a/ui/v2.5/src/hooks/LocalForage.ts +++ b/ui/v2.5/src/hooks/LocalForage.ts @@ -83,7 +83,7 @@ export function useLocalForage( }; localForage.setItem(key, Cache[key]); } - }); + }, []); const isLoading = loading || loading === undefined; diff --git a/ui/v2.5/src/hooks/keybinds.ts b/ui/v2.5/src/hooks/keybinds.ts index ac6ab4dd8b..9ddf3d8634 100644 --- a/ui/v2.5/src/hooks/keybinds.ts +++ b/ui/v2.5/src/hooks/keybinds.ts @@ -81,5 +81,5 @@ export function useRatingKeybinds( return () => { Mousetrap.unbind("r"); }; - }); + }, [isVisible]); } diff --git a/ui/v2.5/src/utils/form.tsx b/ui/v2.5/src/utils/form.tsx index 7c804e221b..c5c649c0f1 100644 --- a/ui/v2.5/src/utils/form.tsx +++ b/ui/v2.5/src/utils/form.tsx @@ -67,7 +67,7 @@ export function useStopWheelScroll(ref: React.RefObject) { current.removeEventListener("wheel", stopWheelScroll); } }; - }); + }, []); } // NumberField is a wrapper around Form.Control that prevents wheel events from scrolling the window.