1+ import { ALL_WORKSPACE_MODES } from "@posthog/core/sidebar/buildSidebarData" ;
2+ import type { WorkspaceMode } from "@posthog/shared" ;
13import { create } from "zustand" ;
24import { persist } from "zustand/middleware" ;
35import { SIDEBAR_MIN_WIDTH } from "./constants" ;
@@ -14,6 +16,7 @@ interface SidebarStoreState {
1416 sortMode : "updated" | "created" ;
1517 showAllUsers : boolean ;
1618 showInternal : boolean ;
19+ taskTypeFilter : WorkspaceMode [ ] ;
1720}
1821
1922interface SidebarStoreActions {
@@ -32,6 +35,7 @@ interface SidebarStoreActions {
3235 setSortMode : ( mode : SidebarStoreState [ "sortMode" ] ) => void ;
3336 setShowAllUsers : ( showAllUsers : boolean ) => void ;
3437 setShowInternal : ( showInternal : boolean ) => void ;
38+ toggleTaskType : ( mode : WorkspaceMode ) => void ;
3539}
3640
3741type SidebarStore = SidebarStoreState & SidebarStoreActions ;
@@ -50,6 +54,7 @@ export const useSidebarStore = create<SidebarStore>()(
5054 sortMode : "updated" ,
5155 showAllUsers : false ,
5256 showInternal : false ,
57+ taskTypeFilter : [ ...ALL_WORKSPACE_MODES ] ,
5358 setOpen : ( open ) => set ( { open, hasUserSetOpen : true } ) ,
5459 setOpenAuto : ( open ) =>
5560 set ( ( state ) => ( state . hasUserSetOpen ? state : { open } ) ) ,
@@ -100,6 +105,12 @@ export const useSidebarStore = create<SidebarStore>()(
100105 setSortMode : ( sortMode ) => set ( { sortMode } ) ,
101106 setShowAllUsers : ( showAllUsers ) => set ( { showAllUsers } ) ,
102107 setShowInternal : ( showInternal ) => set ( { showInternal } ) ,
108+ toggleTaskType : ( mode ) =>
109+ set ( ( state ) => ( {
110+ taskTypeFilter : state . taskTypeFilter . includes ( mode )
111+ ? state . taskTypeFilter . filter ( ( m ) => m !== mode )
112+ : [ ...state . taskTypeFilter , mode ] ,
113+ } ) ) ,
103114 } ) ,
104115 {
105116 name : "sidebar-storage" ,
@@ -114,6 +125,7 @@ export const useSidebarStore = create<SidebarStore>()(
114125 sortMode : state . sortMode ,
115126 showAllUsers : state . showAllUsers ,
116127 showInternal : state . showInternal ,
128+ taskTypeFilter : state . taskTypeFilter ,
117129 } ) ,
118130 merge : ( persisted , current ) => {
119131 const persistedState = persisted as {
@@ -127,6 +139,7 @@ export const useSidebarStore = create<SidebarStore>()(
127139 sortMode ?: SidebarStoreState [ "sortMode" ] ;
128140 showAllUsers ?: boolean ;
129141 showInternal ?: boolean ;
142+ taskTypeFilter ?: WorkspaceMode [ ] ;
130143 } ;
131144 return {
132145 ...current ,
@@ -145,6 +158,8 @@ export const useSidebarStore = create<SidebarStore>()(
145158 sortMode : persistedState . sortMode ?? current . sortMode ,
146159 showAllUsers : persistedState . showAllUsers ?? current . showAllUsers ,
147160 showInternal : persistedState . showInternal ?? current . showInternal ,
161+ taskTypeFilter :
162+ persistedState . taskTypeFilter ?? current . taskTypeFilter ,
148163 } ;
149164 } ,
150165 } ,
0 commit comments