import { FiltersMap, OptionalFiltersMap } from '@wix/bex-core'; import { useWixPatternsContainer, CollectionConfigWithConditionals, useCreateCollection, } from '@wix/bex-core/react'; import { GridState } from '../state'; import { useOptionalCachedState } from './useOptionalCachedState'; export type GridCollection = ( config: CollectionConfigWithConditionals, ) => GridState; export const useGridCollection: GridCollection = < T, F extends FiltersMap = OptionalFiltersMap, >( config: CollectionConfigWithConditionals, ): GridState => { const container = useWixPatternsContainer(); const createCollection = useCreateCollection(); const state = useOptionalCachedState( () => new GridState({ collection: createCollection(config), container, }), ); return state; };