term dropdown populating

This commit is contained in:
2024-09-11 09:21:05 -06:00
parent dd983982d8
commit 72dcb2f54b
13 changed files with 266 additions and 32 deletions

View File

@@ -0,0 +1,37 @@
import { canvasService } from "@/services/canvas/canvasService";
import { useSuspenseQuery } from "@tanstack/react-query";
export const canvasKeys = {
allTerms: ["all canvas terms"] as const,
allAroundDate: (date: Date) => ["all canvas terms", date] as const,
};
export const useAllCanvasTermsQuery = () =>
useSuspenseQuery({
queryKey: canvasKeys.allTerms,
queryFn: canvasService.getAllTerms,
});
export const useCanvasTermsQuery = (queryDate: Date) => {
const { data: terms } = useAllCanvasTermsQuery();
return useSuspenseQuery({
queryKey: canvasKeys.allAroundDate(queryDate),
queryFn: () => {
const currentTerms = terms
.filter((t) => {
if (!t.end_at) return false;
const endDate = new Date(t.end_at);
return endDate > queryDate;
})
.sort(
(a, b) =>
new Date(a.start_at ?? "").getTime() -
new Date(b.start_at ?? "").getTime()
)
.slice(0, 3);
return currentTerms;
},
});
};