@@ -2,7 +2,9 @@ import { useMemo } from "react";
22import { useTasks } from "./useTasks" ;
33import { useLists } from "@/hooks/useLists" ;
44
5- export function useTaskFilters ( ) {
5+ type ListMode = "owned" | "shared" | "all" ;
6+
7+ export function useTaskFilters ( listMode : ListMode = "all" ) {
68 const {
79 accessibleTasks,
810 filteredTasks,
@@ -15,19 +17,31 @@ export function useTaskFilters() {
1517 toggleSort,
1618 sorting,
1719 } = useTasks ( ) ;
18- const { accessibleLists } = useLists ( ) ;
20+ const { accessibleLists, ownedLists, sharedLists } = useLists ( ) ;
21+
22+ const listsToUse = useMemo ( ( ) => {
23+ switch ( listMode ) {
24+ case "owned" :
25+ return ownedLists ;
26+ case "shared" :
27+ return sharedLists ;
28+ case "all" :
29+ default :
30+ return accessibleLists ;
31+ }
32+ } , [ listMode , ownedLists , sharedLists , accessibleLists ] ) ;
1933
2034 const selectedListId = filters . listId ;
2135 const listTaskCounts = useMemo (
2236 ( ) =>
23- accessibleLists . map ( ( list ) => ( {
37+ listsToUse . map ( ( list ) => ( {
2438 id : list . id ,
2539 name : list . name ,
2640 count : accessibleTasks . filter ( ( task ) => task . listId === list . id ) . length ,
2741 description : list . description ,
2842 owner : list . owner ,
2943 } ) ) ,
30- [ accessibleLists , accessibleTasks ] ,
44+ [ listsToUse , accessibleTasks ] ,
3145 ) ;
3246
3347 const handleListFilter = ( listId : string | null ) => {
@@ -46,6 +60,6 @@ export function useTaskFilters() {
4660 sortBy,
4761 toggleSort,
4862 sorting,
49- accessibleLists,
63+ accessibleLists : listsToUse ,
5064 } ;
5165}
0 commit comments