@@ -334,17 +334,43 @@ export const createFilterStore = (
334334 } ;
335335} ;
336336
337- export const useFilterStore = create < FilterState > ( ) (
338- persist (
339- ( set , get ) => buildFilterStore ( set , get ) as FilterState ,
340- {
341- name : "helicone-filter-storage" ,
342- partialize : ( state ) => ( {
343- filter : state . filter ,
344- activeFilterId : state . activeFilterId ,
345- activeFilterName : state . activeFilterName ,
346- hasUnsavedChanges : state . hasUnsavedChanges ,
337+ export type MakeFilterStoreOptions = {
338+ storageKey ?: string ;
339+ initialState ?: Partial < FilterState > ;
340+ partialize ?: ( state : FilterState ) => Partial < FilterState > ;
341+ } ;
342+
343+ export const makeFilterStore = ( options ?: MakeFilterStoreOptions ) => {
344+ const { storageKey = "helicone-filter-storage" , initialState, partialize } =
345+ options || { } ;
346+
347+ return create < FilterState > ( ) (
348+ persist (
349+ ( set , get ) => ( {
350+ ...( buildFilterStore ( set , get ) as FilterState ) ,
351+ ...( initialState || { } ) ,
347352 } ) ,
348- } ,
349- ) ,
350- ) ;
353+ {
354+ name : storageKey ,
355+ partialize :
356+ partialize ||
357+ ( ( state ) => ( {
358+ filter : state . filter ,
359+ activeFilterId : state . activeFilterId ,
360+ activeFilterName : state . activeFilterName ,
361+ hasUnsavedChanges : state . hasUnsavedChanges ,
362+ } ) ) ,
363+ } ,
364+ ) ,
365+ ) ;
366+ } ;
367+
368+ export const useFilterStore = makeFilterStore ( {
369+ storageKey : "helicone-filter-storage" ,
370+ partialize : ( state ) => ( {
371+ filter : state . filter ,
372+ activeFilterId : state . activeFilterId ,
373+ activeFilterName : state . activeFilterName ,
374+ hasUnsavedChanges : state . hasUnsavedChanges ,
375+ } ) ,
376+ } ) ;
0 commit comments