From 2c1ea475df4996f68edf69d6be3b682be3d7c704 Mon Sep 17 00:00:00 2001 From: "Tom (plebeius.eth)" Date: Fri, 14 Jun 2024 22:00:43 +0200 Subject: [PATCH] refactor(catalog filters store): add sorting store --- src/components/board-buttons/board-buttons.tsx | 3 +-- src/stores/use-catalog-filters-store.ts | 5 +++++ src/stores/use-sorting-store.ts | 13 ------------- src/views/board/board.tsx | 4 ++-- src/views/catalog/catalog.tsx | 4 +--- 5 files changed, 9 insertions(+), 20 deletions(-) delete mode 100644 src/stores/use-sorting-store.ts diff --git a/src/components/board-buttons/board-buttons.tsx b/src/components/board-buttons/board-buttons.tsx index db848c6e..4d481e00 100644 --- a/src/components/board-buttons/board-buttons.tsx +++ b/src/components/board-buttons/board-buttons.tsx @@ -4,7 +4,6 @@ import { useAccountComment, useSubscribe } from '@plebbit/plebbit-react-hooks'; import { isAllView, isCatalogView, isPendingPostView, isPostPageView, isSubscriptionsView } from '../../lib/utils/view-utils'; import useCatalogFiltersStore from '../../stores/use-catalog-filters-store'; import useFeedResetStore from '../../stores/use-feed-reset-store'; -import useSortingStore from '../../stores/use-sorting-store'; import useTimeFilter from '../../hooks/use-time-filter'; import styles from './board-buttons.module.css'; @@ -83,7 +82,7 @@ const RefreshButton = () => { const SortOptions = () => { const { t } = useTranslation(); - const { sortType, setSortType } = useSortingStore(); + const { sortType, setSortType } = useCatalogFiltersStore(); const handleSortChange = (event: React.ChangeEvent) => { const type = event.target.value as 'active' | 'new'; diff --git a/src/stores/use-catalog-filters-store.ts b/src/stores/use-catalog-filters-store.ts index 4e1885fa..feb410d8 100644 --- a/src/stores/use-catalog-filters-store.ts +++ b/src/stores/use-catalog-filters-store.ts @@ -3,6 +3,8 @@ import { create } from 'zustand'; interface CatalogFiltersStore { showTextOnlyThreads: boolean; setShowTextOnlyThreads: (value: boolean) => void; + sortType: 'active' | 'new'; + setSortType: (type: 'active' | 'new') => void; } const useCatalogFiltersStore = create((set) => ({ @@ -11,6 +13,9 @@ const useCatalogFiltersStore = create((set) => ({ set({ showTextOnlyThreads: value }); localStorage.setItem('showTextOnlyThreads', value.toString()); }, + + sortType: 'active', + setSortType: (type: 'active' | 'new') => set({ sortType: type }), })); export default useCatalogFiltersStore; diff --git a/src/stores/use-sorting-store.ts b/src/stores/use-sorting-store.ts deleted file mode 100644 index c279258d..00000000 --- a/src/stores/use-sorting-store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { create } from 'zustand'; - -interface SortingStore { - sortType: 'active' | 'new'; - setSortType: (type: 'active' | 'new') => void; -} - -const useSortingStore = create((set) => ({ - sortType: 'active', - setSortType: (type) => set({ sortType: type }), -})); - -export default useSortingStore; diff --git a/src/views/board/board.tsx b/src/views/board/board.tsx index f5e77894..ef0eb291 100644 --- a/src/views/board/board.tsx +++ b/src/views/board/board.tsx @@ -10,7 +10,7 @@ import useFeedStateString from '../../hooks/use-feed-state-string'; import useReplyModal from '../../hooks/use-reply-modal'; import useTimeFilter from '../../hooks/use-time-filter'; import useFeedResetStore from '../../stores/use-feed-reset-store'; -import useSortingStore from '../../stores/use-sorting-store'; +import useCatalogFiltersStore from '../../stores/use-catalog-filters-store'; import LoadingEllipsis from '../../components/loading-ellipsis'; import { Post } from '../post'; import ReplyModal from '../../components/reply-modal'; @@ -42,7 +42,7 @@ const Board = () => { return [subplebbitAddress]; }, [isInAllView, isInSubscriptionsView, subplebbitAddress, defaultSubplebbitAddresses, subscriptions]); - const { sortType } = useSortingStore(); + const { sortType } = useCatalogFiltersStore(); const { timeFilterSeconds } = useTimeFilter(); const feedOptions: any = { diff --git a/src/views/catalog/catalog.tsx b/src/views/catalog/catalog.tsx index 1b5c9c35..c00cd697 100644 --- a/src/views/catalog/catalog.tsx +++ b/src/views/catalog/catalog.tsx @@ -11,7 +11,6 @@ import useTimeFilter from '../../hooks/use-time-filter'; import useWindowWidth from '../../hooks/use-window-width'; import useCatalogFiltersStore from '../../stores/use-catalog-filters-store'; import useFeedResetStore from '../../stores/use-feed-reset-store'; -import useSortingStore from '../../stores/use-sorting-store'; import CatalogRow from '../../components/catalog-row'; import LoadingEllipsis from '../../components/loading-ellipsis'; import SettingsModal from '../../components/settings-modal'; @@ -112,9 +111,8 @@ const Catalog = () => { // eslint-disable-next-line const postsPerPage = useMemo(() => (columnCount <= 2 ? 10 : columnCount === 3 ? 15 : columnCount === 4 ? 20 : 25), []); - const { sortType } = useSortingStore(); const { timeFilterSeconds } = useTimeFilter(); - const { showTextOnlyThreads } = useCatalogFiltersStore(); + const { showTextOnlyThreads, sortType } = useCatalogFiltersStore(); const feedOptions: any = { subplebbitAddresses,