fix: swap event search icon for clear control

This commit is contained in:
2026-09-30 18:30:06 +03:30
parent c9a0b6015c
commit 9a8ad56103
2 changed files with 27 additions and 3 deletions

View File

@@ -2,7 +2,7 @@
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import Image from "next/image";
import { Search } from "lucide-react";
import { Search, X } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { EventCard } from "@/components/events/EventCard";
@@ -108,6 +108,7 @@ export default function Events({
const [loadError, setLoadError] = useState(false);
const [retryToken, setRetryToken] = useState(0);
const [now] = useState(() => Date.now());
const searchInputRef = useRef<HTMLInputElement>(null);
const resultsRef = useRef<HTMLDivElement>(null);
const skipFirstFetch = useRef(true);
@@ -264,14 +265,30 @@ export default function Events({
<section aria-label="نتایج رویدادها" className="min-w-0 lg:flex lg:flex-col">
<div dir="rtl" className="mb-4 flex items-center gap-2 sm:mb-5">
<div className="relative min-w-0 flex-1">
<Search aria-hidden="true" className="absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" />
{search ? (
<button
type="button"
aria-label="پاک‌کردن جستجو"
className="absolute left-2 top-1/2 inline-flex size-7 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-secondary hover:text-foreground"
onPointerDown={(event) => event.preventDefault()}
onClick={() => {
setSearch("");
searchInputRef.current?.focus();
}}
>
<X aria-hidden="true" className="size-4" />
</button>
) : (
<Search aria-hidden="true" className="absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" />
)}
<Input
ref={searchInputRef}
type="search"
placeholder="جستجو در رویدادها…"
aria-label="جستجو در رویدادها"
value={search}
onChange={(event) => setSearch(event.target.value)}
className="h-11 pl-10 pr-3 focus-visible:ring-0 focus-visible:ring-offset-0"
className="event-search-input h-11 pl-10 pr-3 focus-visible:ring-0 focus-visible:ring-offset-0"
/>
</div>
<EventFiltersDrawer