@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 783 B
JavaScript
import{useObserver as c}from"mobx-react-lite";import{useCallback as s,useEffect as p}from"react";import F from"../store";export const useURLFilters=()=>{const{urlFilterManager:e,uiState:t}=F,r=c(()=>({categories:t.selectedCategoryFilters.map(i=>i.name),poiType:t.selectedPoiTypeFilters.length>0?t.selectedPoiTypeFilters[0].name:null,exhibitors:e.currentFilters.exhibitors,isActive:t.hasAppliedFilters||e.currentFilters.exhibitors})),l=s(i=>{e.isInitialized&&e.setCategories(i)},[e]),o=s(i=>{e.isInitialized&&e.setPoiType(i)},[e]),a=s(()=>{e.isInitialized&&e.clearAllFilters()},[e]),n=s(i=>e.validateFilters(i),[e]);return p(()=>{e.isInitialized||e.initialize()},[e]),{currentFilters:r,setCategories:l,setPoiType:o,clearAllFilters:a,validateFilters:n,isInitialized:e.isInitialized}};