{"version":3,"sources":["../../../src/lib/search-provider.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useUsersManagementContext } from \"./users-management-context.js\";\n\ninterface SearchContextType {\n  inputRef: React.RefObject<HTMLInputElement | null>;\n  clearSearch: () => void;\n  searchValue: string;\n  setSearchValue: React.Dispatch<React.SetStateAction<string>>;\n}\n\nconst SearchContext = React.createContext<SearchContextType | undefined>(\n  undefined,\n);\nSearchContext.displayName = \"SearchContext\";\n\nexport const SearchProvider: React.FC<React.PropsWithChildren> = ({\n  children,\n}) => {\n  const inputRef = React.useRef<HTMLInputElement | null>(null);\n  const {\n    state: { searchQuery },\n    dispatch,\n  } = useUsersManagementContext();\n\n  const [searchValue, setSearchValue] = React.useState(searchQuery || \"\");\n\n  const clearSearch = React.useCallback(() => {\n    flushSync(() => {\n      setSearchValue(\"\");\n      dispatch({ type: \"FILTER_BY_SEARCH\", searchQuery: \"\" });\n    });\n    inputRef.current?.focus();\n  }, [dispatch]);\n\n  return (\n    <SearchContext.Provider\n      value={{ inputRef, clearSearch, searchValue, setSearchValue }}\n    >\n      {children}\n    </SearchContext.Provider>\n  );\n};\n\nexport const useSearchContext = () => {\n  const context = React.useContext(SearchContext);\n  if (!context) {\n    throw new Error(\"useSearchContext must be used within a SearchProvider\");\n  }\n  return context;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCI;AApCJ,YAAuB;AACvB,uBAA0B;AAC1B,sCAA0C;AAS1C,MAAM,gBAAgB,MAAM;AAAA,EAC1B;AACF;AACA,cAAc,cAAc;AAErB,MAAM,iBAAoD,CAAC;AAAA,EAChE;AACF,MAAM;AACJ,QAAM,WAAW,MAAM,OAAgC,IAAI;AAC3D,QAAM;AAAA,IACJ,OAAO,EAAE,YAAY;AAAA,IACrB;AAAA,EACF,QAAI,2DAA0B;AAE9B,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAS,eAAe,EAAE;AAEtE,QAAM,cAAc,MAAM,YAAY,MAAM;AAC1C,oCAAU,MAAM;AACd,qBAAe,EAAE;AACjB,eAAS,EAAE,MAAM,oBAAoB,aAAa,GAAG,CAAC;AAAA,IACxD,CAAC;AACD,aAAS,SAAS,MAAM;AAAA,EAC1B,GAAG,CAAC,QAAQ,CAAC;AAEb,SACE;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO,EAAE,UAAU,aAAa,aAAa,eAAe;AAAA,MAE3D;AAAA;AAAA,EACH;AAEJ;AAEO,MAAM,mBAAmB,MAAM;AACpC,QAAM,UAAU,MAAM,WAAW,aAAa;AAC9C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AACA,SAAO;AACT;","names":[]}