MCPcopy Create free account
hub / github.com/adobe/react-spectrum / MobileNav

Function MobileNav

packages/dev/s2-docs/src/MobileSearchMenu.tsx:233–444  ·  view source on GitHub ↗
({initialTag}: {initialTag?: string})

Source from the content-addressed store, hash-verified

231};
232
233function MobileNav({initialTag}: {initialTag?: string}) {
234 let {pages, currentPage} = useRouter();
235 let overlayTriggerState = useContext(OverlayTriggerStateContext);
236 let [searchFocused, setSearchFocused] = useState(false);
237 let iconFilter = useIconFilter();
238 let isOpen = !!overlayTriggerState?.isOpen;
239
240 const {
241 selectedLibrary,
242 setSelectedLibrary,
243 orderedLibraries: libraries,
244 searchValue,
245 setSearchValue,
246 sectionTagsForDisplay: sectionTags,
247 selectedTagId: selectedSection,
248 setSelectedTagId: setSelectedSection,
249 handleTagSelectionChange,
250 filteredIcons,
251 isIconsSelected,
252 selectedItems,
253 getPlaceholderText
254 } = useSearchMenuState({
255 pages,
256 currentPage,
257 initialTag,
258 isOpen
259 });
260
261 const filteredColors = useFilteredColors(searchValue);
262 const isColorsSelected = selectedSection === 'colors';
263 const isTypographySelected = selectedSection === 'typography';
264
265 let handleSearchFocus = () => {
266 setSearchFocused(true);
267 };
268
269 let handleSearchBlur = () => {
270 if (searchValue === '') {
271 setSearchFocused(false);
272 }
273 };
274
275 let handleSearchChange = (value: string) => {
276 setSearchValue(value);
277 if (value === '' && !searchFocused) {
278 setSearchFocused(false);
279 }
280 };
281
282 // Delay closing until the page updates (or the skeleton shows).
283 let lastPage = useRef(currentPage);
284 useEffect(() => {
285 if (currentPage !== lastPage.current && overlayTriggerState?.isOpen) {
286 overlayTriggerState?.close();
287 }
288 lastPage.current = currentPage;
289 }, [currentPage, overlayTriggerState]);
290

Callers

nothing calls this directly

Calls 6

useRouterFunction · 0.90
useIconFilterFunction · 0.90
useSearchMenuStateFunction · 0.90
useFilteredColorsFunction · 0.90
getResourceTagsFunction · 0.90
closeMethod · 0.65

Tested by

no test coverage detected