fix: dashboard status counts always set filter (no toggle), hover underline
- Clicking a status count always sets that filter, even when navigating to a different tab (previously toggled off if same filter was active) - Click card background to reset filter to 'all' - Hover underline on status count links
This commit is contained in:
@@ -687,8 +687,8 @@ function DashboardSummary({ statusFilter, onNavigate, onFilter }: {
|
||||
<div className="flex items-baseline gap-2 mt-1 flex-wrap">
|
||||
{tc.new > 0 && (
|
||||
<>
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:opacity-80 transition-opacity"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter(statusFilter === "new" ? "all" : "new"); }}>
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:underline decoration-neutral-500 underline-offset-2 transition-all"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter("new"); }}>
|
||||
<span className="text-lg font-bold text-gold">{tc.new}</span>
|
||||
<span className="text-[10px] text-neutral-500">новых</span>
|
||||
</span>
|
||||
@@ -697,8 +697,8 @@ function DashboardSummary({ statusFilter, onNavigate, onFilter }: {
|
||||
{tc.contacted > 0 && (
|
||||
<>
|
||||
{tc.new > 0 && <span className="text-neutral-700">·</span>}
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:opacity-80 transition-opacity"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter(statusFilter === "contacted" ? "all" : "contacted"); }}>
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:underline decoration-neutral-500 underline-offset-2 transition-all"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter("contacted"); }}>
|
||||
<span className="text-sm font-medium text-blue-400">{tc.contacted}</span>
|
||||
<span className="text-[10px] text-neutral-500">в работе</span>
|
||||
</span>
|
||||
@@ -707,8 +707,8 @@ function DashboardSummary({ statusFilter, onNavigate, onFilter }: {
|
||||
{tc.confirmed > 0 && (
|
||||
<>
|
||||
{(tc.new > 0 || tc.contacted > 0) && <span className="text-neutral-700">·</span>}
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:opacity-80 transition-opacity"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter(statusFilter === "confirmed" ? "all" : "confirmed"); }}>
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:underline decoration-neutral-500 underline-offset-2 transition-all"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter("confirmed"); }}>
|
||||
<span className="text-sm font-medium text-emerald-400">{tc.confirmed}</span>
|
||||
<span className="text-[10px] text-neutral-500">подтв.</span>
|
||||
</span>
|
||||
@@ -717,8 +717,8 @@ function DashboardSummary({ statusFilter, onNavigate, onFilter }: {
|
||||
{tc.declined > 0 && (
|
||||
<>
|
||||
{(tc.new > 0 || tc.contacted > 0 || tc.confirmed > 0) && <span className="text-neutral-700">·</span>}
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:opacity-80 transition-opacity"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter(statusFilter === "declined" ? "all" : "declined"); }}>
|
||||
<span className="inline-flex items-baseline gap-1 cursor-pointer hover:underline decoration-neutral-500 underline-offset-2 transition-all"
|
||||
onClick={(e) => { e.stopPropagation(); onNavigate(c.tab); onFilter("declined"); }}>
|
||||
<span className="text-sm font-medium text-red-400">{tc.declined}</span>
|
||||
<span className="text-[10px] text-neutral-500">отказ</span>
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user