mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-24 10:21:15 +01:00
Add React hooks eslint
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
||||
import { useCallback } from 'react';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { buildKeyValueKey, getKeyValue, setKeyValue } from '../lib/keyValueStore';
|
||||
|
||||
const DEFAULT_NAMESPACE = 'app';
|
||||
@@ -46,15 +46,18 @@ export function useKeyValue<T extends Object | null>({
|
||||
mutate.mutate(value);
|
||||
}
|
||||
},
|
||||
[defaultValue],
|
||||
[defaultValue, key, mutate, namespace],
|
||||
);
|
||||
|
||||
const reset = useCallback(() => mutate.mutate(defaultValue), [defaultValue]);
|
||||
const reset = useCallback(() => mutate.mutate(defaultValue), [mutate, defaultValue]);
|
||||
|
||||
return {
|
||||
value: query.data,
|
||||
isLoading: query.isLoading,
|
||||
set,
|
||||
reset,
|
||||
};
|
||||
return useMemo(
|
||||
() => ({
|
||||
value: query.data,
|
||||
isLoading: query.isLoading,
|
||||
set,
|
||||
reset,
|
||||
}),
|
||||
[query.data, query.isLoading, reset, set],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { useCallback } from 'react';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { NAMESPACE_NO_SYNC } from '../lib/keyValueStore';
|
||||
import { useKeyValue } from './useKeyValue';
|
||||
|
||||
@@ -28,12 +28,15 @@ export function useSidebarDisplay() {
|
||||
const hidden = width < COLLAPSE_WIDTH;
|
||||
display.set({ hidden, width: Math.max(MIN_WIDTH, width) });
|
||||
},
|
||||
[display.set],
|
||||
[display],
|
||||
);
|
||||
const hide = useCallback(() => display.set((v) => ({ ...v, hidden: true })), []);
|
||||
const show = useCallback(() => display.set((v) => ({ ...v, hidden: false })), []);
|
||||
const toggle = useCallback(() => display.set((v) => ({ ...v, hidden: !v.hidden })), []);
|
||||
const hide = useCallback(() => display.set((v) => ({ ...v, hidden: true })), [display]);
|
||||
const show = useCallback(() => display.set((v) => ({ ...v, hidden: false })), [display]);
|
||||
const toggle = useCallback(() => display.set((v) => ({ ...v, hidden: !v.hidden })), [display]);
|
||||
const reset = display.reset;
|
||||
|
||||
return { width, hidden, set, reset, hide, show, toggle };
|
||||
return useMemo(
|
||||
() => ({ width, hidden, set, reset, hide, show, toggle }),
|
||||
[hidden, hide, reset, set, show, toggle, width],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,9 @@ export function useTauriListeners() {
|
||||
: null;
|
||||
|
||||
if (queryKey === null) {
|
||||
console.log('Unrecognized updated model:', payload);
|
||||
if (payload.model) {
|
||||
console.log('Unrecognized updated model:', payload);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -154,5 +156,5 @@ export function useTauriListeners() {
|
||||
unsub();
|
||||
}
|
||||
};
|
||||
}, []);
|
||||
}, [queryClient, sidebarDisplay.toggle, wasUpdatedExternally]);
|
||||
}
|
||||
|
||||
@@ -13,16 +13,12 @@ export function useTheme() {
|
||||
defaultValue: getAppearance(),
|
||||
});
|
||||
|
||||
const themeChange = (appearance: Appearance) => {
|
||||
appearanceKv.set(appearance);
|
||||
};
|
||||
|
||||
const handleToggleAppearance = async () => {
|
||||
appearanceKv.set(appearanceKv.value === 'dark' ? 'light' : 'dark');
|
||||
};
|
||||
|
||||
// Set appearance when preferred theme changes
|
||||
useEffect(() => subscribeToPreferredAppearanceChange(themeChange), []);
|
||||
useEffect(() => subscribeToPreferredAppearanceChange(appearanceKv.set), [appearanceKv.set]);
|
||||
|
||||
// Sync appearance when k/v changes
|
||||
useEffect(() => setAppearance(appearanceKv.value), [appearanceKv.value]);
|
||||
|
||||
Reference in New Issue
Block a user