mirror of
https://github.com/Sonarr/Sonarr
synced 2025-12-06 08:28:37 +01:00
New: Season packs and multi-episode releases will show as a single item in the queue Closes #6537
38 lines
733 B
TypeScript
38 lines
733 B
TypeScript
import { useEffect } from 'react';
|
|
import { useHistory } from 'react-router';
|
|
import { create } from 'zustand';
|
|
|
|
interface PageStore {
|
|
events: number;
|
|
queue: number;
|
|
}
|
|
|
|
const pageStore = create<PageStore>(() => ({
|
|
events: 1,
|
|
queue: 1,
|
|
}));
|
|
|
|
const usePage = (kind: keyof PageStore) => {
|
|
const { action } = useHistory();
|
|
|
|
const goToPage = (page: number) => {
|
|
pageStore.setState({ [kind]: page });
|
|
};
|
|
|
|
useEffect(() => {
|
|
if (action === 'POP') {
|
|
pageStore.setState({ [kind]: 1 });
|
|
}
|
|
}, [action, kind]);
|
|
|
|
return {
|
|
page: pageStore((state) => state[kind]),
|
|
goToPage,
|
|
};
|
|
};
|
|
|
|
export default usePage;
|
|
|
|
export const resetPage = (kind: keyof PageStore) => {
|
|
pageStore.setState({ [kind]: 1 });
|
|
};
|