Files
readest/apps/readest-app/src/app/reader/hooks/useBookShortcuts.ts
T
2024-11-08 20:09:48 +01:00

50 lines
1.1 KiB
TypeScript

import { useReaderStore } from '@/store/readerStore';
import useShortcuts from '@/hooks/useShortcuts';
interface UseBookShortcutsProps {
sideBarBookKey: string | null;
bookKeys: string[];
openSplitView: () => void;
getNextBookKey: (bookKey: string) => string;
}
const useBookShortcuts = ({
sideBarBookKey,
bookKeys,
openSplitView,
getNextBookKey,
}: UseBookShortcutsProps) => {
const { getView, setSideBarBookKey } = useReaderStore();
const { toggleSideBar } = useReaderStore();
const switchSideBar = () => {
if (sideBarBookKey) setSideBarBookKey(getNextBookKey(sideBarBookKey));
};
const goLeft = () => {
getView(sideBarBookKey)?.goLeft();
};
const goRight = () => {
getView(sideBarBookKey)?.goRight();
};
const reloadPage = () => {
window.location.reload();
};
useShortcuts(
{
onOpenSplitView: openSplitView,
onSwitchSideBar: switchSideBar,
onToggleSideBar: toggleSideBar,
onReloadPage: reloadPage,
onGoLeft: goLeft,
onGoRight: goRight,
},
[sideBarBookKey, bookKeys],
);
};
export default useBookShortcuts;