Skip to content

Commit

Permalink
tiny fixes and fixing TS errors
Browse files Browse the repository at this point in the history
  • Loading branch information
MohamedBassem committed Jan 12, 2025
1 parent 7be324b commit 54d18ab
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 31 deletions.
2 changes: 1 addition & 1 deletion apps/mobile/components/bookmarks/UpdatingBookmarkList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default function UpdatingBookmarkList({
query,
header,
}: {
query: ZGetBookmarksRequest;
query: Omit<ZGetBookmarksRequest, "sortOrder">; // Sort order is not supported in mobile yet
header?: React.ReactElement;
}) {
const apiUtils = api.useUtils();
Expand Down
14 changes: 4 additions & 10 deletions apps/web/components/dashboard/SortOrderToggle.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,14 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { useSortOrder } from "@/lib/hooks/useSortOrder";
import { useTranslation } from "@/lib/i18n/client";
import { useSortOrderStore } from "@/lib/store/useSortOrderStore";
import { Check, SortAsc, SortDesc } from "lucide-react";

import { ZSortOrder } from "@hoarder/shared/types/bookmarks";

export default function SortOrderToggle() {
const { t } = useTranslation();

const { sortOrder: currentSort, setSortOrder } = useSortOrder();

const updateSort = async (newSort: ZSortOrder) => {
setSortOrder(newSort);
};
const { sortOrder: currentSort, setSortOrder } = useSortOrderStore();

return (
<DropdownMenu>
Expand All @@ -38,7 +32,7 @@ export default function SortOrderToggle() {
<DropdownMenuContent className="w-fit">
<DropdownMenuItem
className="cursor-pointer justify-between"
onClick={() => updateSort("desc")}
onClick={() => setSortOrder("desc")}
>
<div className="flex items-center">
<SortDesc size={16} className="mr-2" />
Expand All @@ -48,7 +42,7 @@ export default function SortOrderToggle() {
</DropdownMenuItem>
<DropdownMenuItem
className="cursor-pointer justify-between"
onClick={() => updateSort("asc")}
onClick={() => setSortOrder("asc")}
>
<div className="flex items-center">
<SortAsc size={16} className="mr-2" />
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/dashboard/bookmarks/Bookmarks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export default async function Bookmarks({
showDivider,
showEditorCard = false,
}: {
query: ZGetBookmarksRequest;
query: Omit<ZGetBookmarksRequest, "sortOrder">; // Sort order is handled by the store
header?: React.ReactNode;
showDivider?: boolean;
showEditorCard?: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { useEffect } from "react";
import UploadDropzone from "@/components/dashboard/UploadDropzone";
import { useSortOrder } from "@/lib/hooks/useSortOrder";
import { useSortOrderStore } from "@/lib/store/useSortOrderStore";
import { api } from "@/lib/trpc";

import type {
Expand All @@ -18,18 +18,14 @@ export default function UpdatableBookmarksGrid({
bookmarks: initialBookmarks,
showEditorCard = false,
}: {
query: ZGetBookmarksRequest;
query: Omit<ZGetBookmarksRequest, "sortOrder">; // Sort order is handled by the store
bookmarks: ZGetBookmarksResponse;
showEditorCard?: boolean;
itemsPerPage?: number;
}) {
const { sortOrder } = useSortOrder();
const sortOrder = useSortOrderStore((state) => state.sortOrder);

// Merge the sort order from URL with existing query params
const finalQuery = {
...query,
sortOrder,
};
const finalQuery = { ...query, sortOrder };

const { data, fetchNextPage, hasNextPage, isFetchingNextPage, refetch } =
api.bookmarks.getBookmarks.useInfiniteQuery(
Expand Down Expand Up @@ -60,7 +56,7 @@ export default function UpdatableBookmarksGrid({
);

return (
<BookmarkGridContextProvider query={query}>
<BookmarkGridContextProvider query={finalQuery}>
{showEditorCard ? <UploadDropzone>{grid}</UploadDropzone> : grid}
</BookmarkGridContextProvider>
);
Expand Down
9 changes: 7 additions & 2 deletions apps/web/lib/hooks/bookmark-search.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useEffect, useMemo, useState } from "react";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import { useSortOrder } from "@/lib/hooks/useSortOrder";
import { useSortOrderStore } from "@/lib/store/useSortOrderStore";
import { api } from "@/lib/trpc";
import { keepPreviousData } from "@tanstack/react-query";

Expand Down Expand Up @@ -55,7 +55,7 @@ export function useDoBookmarkSearch() {

export function useBookmarkSearch() {
const { searchQuery } = useSearchQuery();
const { sortOrder } = useSortOrder();
const sortOrder = useSortOrderStore((state) => state.sortOrder);

const {
data,
Expand All @@ -65,6 +65,7 @@ export function useBookmarkSearch() {
hasNextPage,
fetchNextPage,
isFetchingNextPage,
refetch,
} = api.bookmarks.searchBookmarks.useInfiniteQuery(
{
text: searchQuery,
Expand All @@ -78,6 +79,10 @@ export function useBookmarkSearch() {
},
);

useEffect(() => {
refetch();
}, [refetch, sortOrder]);

if (error) {
throw error;
}
Expand Down
7 changes: 0 additions & 7 deletions apps/web/lib/hooks/useSortOrder.ts

This file was deleted.

2 changes: 1 addition & 1 deletion apps/web/lib/store/useSortOrderStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ interface SortOrderState {
}

export const useSortOrderStore = create<SortOrderState>((set) => ({
sortOrder: "desc" as ZSortOrder, // default sort order
sortOrder: "desc", // default sort order
setSortOrder: (sortOrder) => set({ sortOrder }),
}));

0 comments on commit 54d18ab

Please sign in to comment.