Store Locator
mapcn/store-locatorFreeBlock
Searchable store list synced with map markers.
Install it
npx shadcn@latest add https://mapcn.dev/r/store-locator.jsonSource
1"use client";23import { useMemo, useState, type CSSProperties } from "react";45import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";6import { StoreList } from "./components/store-list";7import { LocatorMap } from "./components/locator-map";8import { MAP_CENTER, stores } from "./data";910export default function Page() {11 const [query, setQuery] = useState("");12 const [selectedId, setSelectedId] = useState<string | null>(stores[0].id);1314 const filtered = useMemo(() => {15 const q = query.trim().toLowerCase();16 if (!q) return stores;17 return stores.filter(18 (store) =>19 store.name.toLowerCase().includes(q) ||20 store.address.toLowerCase().includes(q) ||21 store.neighborhood.toLowerCase().includes(q),22 );23 }, [query]);2425 return (26 <SidebarProvider style={{ "--sidebar-width": "20rem" } as CSSProperties}>27 <StoreList28 stores={filtered}29 query={query}30 onQueryChange={setQuery}31 selectedId={selectedId}32 onSelect={setSelectedId}33 />3435 <SidebarInset>36 <LocatorMap37 stores={filtered}38 selectedId={selectedId}39 onSelect={setSelectedId}40 onClearSelection={() => setSelectedId(null)}41 center={MAP_CENTER}42 />43 </SidebarInset>44 </SidebarProvider>45 );46}
What it pulls in
npm packages
Other registry items
Files it writes
More from mapcn
All 9 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Analytics Cardanalytics-card | mapcn | Blocks | Free | 1 dep · 2 files | |
| Analytics Mapanalytics-map | mapcn | Blocks | Free | 2 deps · 4 files | |
| Choroplethchoropleth | mapcn | Blocks | Free | 2 deps · 3 files | |
| Delivery Trackerdelivery-tracker | mapcn | Blocks | Free | 1 dep · 2 files | |
| Heatmapheatmap | mapcn | Blocks | Free | no deps | |
| Logistics Networklogistics-network | mapcn | Blocks | Free | 1 dep · 4 files | |
| Uptime Monitoruptime-monitor | mapcn | Blocks | Free | 1 dep · 4 files |
