"use client"; import { Suspense, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { MapPin, Zap, Store } from "lucide-react"; import { Button } from "@/components/ui/button"; import { setLocation } from "@/lib/location/client"; const BENEFITS = [ { icon: MapPin, text: "نمایش فروشگاههای محله شما" }, { icon: Zap, text: "تحویل سریعتر" }, { icon: Store, text: "کشف بازارچههای اطراف" }, ]; // L01 — winofyfrontenddoc (1).md §4.1. No illustration asset was provided; // approximated with a simple icon badge rather than the isometric map graphic. export default function LocationPermissionPage() { return ( ); } function LocationPermissionPageInner() { const router = useRouter(); const searchParams = useSearchParams(); const next = searchParams.get("next") ?? "/"; const [loading, setLoading] = useState(false); function allowLocation() { setLoading(true); navigator.geolocation.getCurrentPosition( (position) => { setLocation({ mode: "geo", lat: position.coords.latitude, lng: position.coords.longitude }); router.push(next); router.refresh(); }, () => { setLoading(false); router.push(`/location/error?next=${encodeURIComponent(next)}`); }, { timeout: 10000 }, ); } return ( بازارچه محلی شما برای نمایش فروشگاههای نزدیک، به موقعیت مکانی شما نیاز داریم {BENEFITS.map(({ icon: Icon, text }) => ( {text} ))} {loading ? "در حال دریافت موقعیت..." : "اجازه دسترسی به موقعیت مکانی"} router.push(`/location/search?next=${encodeURIComponent(next)}`)} className="text-body-medium font-semibold text-primary-action" > انتخاب دستی محله پشتیبانی ); }
برای نمایش فروشگاههای نزدیک، به موقعیت مکانی شما نیاز داریم