feat(history): remove Approved From/To search fields
Drop the two approval-date pickers from the PO History filter bar per the manager's request — they were deemed unnecessary. Removes the inputs, their useState hooks, and their entries in buildParams/clear/ hasFilters. The approvedFrom/approvedTo URL params are left intact server-side (page.tsx, lib/history-filter.ts, export route) so existing deep-links from the dashboard "Approved This Month" card and the report drill-downs keep pre-filtering History by approval date. Fixes #136 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6c5aebd3fb
commit
5218eb3717
1 changed files with 2 additions and 16 deletions
|
|
@ -36,8 +36,6 @@ export function HistoryFilters({ vessels, accounts, perPageOptions, defaultPerPa
|
||||||
|
|
||||||
const [dateFrom, setDateFrom] = useState(sp.get("dateFrom") ?? "");
|
const [dateFrom, setDateFrom] = useState(sp.get("dateFrom") ?? "");
|
||||||
const [dateTo, setDateTo] = useState(sp.get("dateTo") ?? "");
|
const [dateTo, setDateTo] = useState(sp.get("dateTo") ?? "");
|
||||||
const [approvedFrom, setApprovedFrom] = useState(sp.get("approvedFrom") ?? "");
|
|
||||||
const [approvedTo, setApprovedTo] = useState(sp.get("approvedTo") ?? "");
|
|
||||||
const [vesselId, setVesselId] = useState(sp.get("vesselId") ?? "");
|
const [vesselId, setVesselId] = useState(sp.get("vesselId") ?? "");
|
||||||
const [accountId, setAccountId] = useState(sp.get("accountId") ?? "");
|
const [accountId, setAccountId] = useState(sp.get("accountId") ?? "");
|
||||||
const [statuses, setStatuses] = useState<string[]>(sp.getAll("status"));
|
const [statuses, setStatuses] = useState<string[]>(sp.getAll("status"));
|
||||||
|
|
@ -65,8 +63,6 @@ export function HistoryFilters({ vessels, accounts, perPageOptions, defaultPerPa
|
||||||
const params = new URLSearchParams();
|
const params = new URLSearchParams();
|
||||||
if (dateFrom) params.set("dateFrom", dateFrom);
|
if (dateFrom) params.set("dateFrom", dateFrom);
|
||||||
if (dateTo) params.set("dateTo", dateTo);
|
if (dateTo) params.set("dateTo", dateTo);
|
||||||
if (approvedFrom) params.set("approvedFrom", approvedFrom);
|
|
||||||
if (approvedTo) params.set("approvedTo", approvedTo);
|
|
||||||
if (vesselId) params.set("vesselId", vesselId);
|
if (vesselId) params.set("vesselId", vesselId);
|
||||||
if (accountId) params.set("accountId", accountId);
|
if (accountId) params.set("accountId", accountId);
|
||||||
for (const s of statuses) params.append("status", s);
|
for (const s of statuses) params.append("status", s);
|
||||||
|
|
@ -83,14 +79,14 @@ export function HistoryFilters({ vessels, accounts, perPageOptions, defaultPerPa
|
||||||
}
|
}
|
||||||
|
|
||||||
function clear() {
|
function clear() {
|
||||||
setDateFrom(""); setDateTo(""); setApprovedFrom(""); setApprovedTo(""); setVesselId(""); setAccountId(""); setStatuses([]);
|
setDateFrom(""); setDateTo(""); setVesselId(""); setAccountId(""); setStatuses([]);
|
||||||
const params = new URLSearchParams();
|
const params = new URLSearchParams();
|
||||||
if (perPage !== defaultPerPage) params.set("perPage", String(perPage));
|
if (perPage !== defaultPerPage) params.set("perPage", String(perPage));
|
||||||
const qs = params.toString();
|
const qs = params.toString();
|
||||||
router.push(qs ? `/history?${qs}` : "/history");
|
router.push(qs ? `/history?${qs}` : "/history");
|
||||||
}
|
}
|
||||||
|
|
||||||
const hasFilters = dateFrom || dateTo || approvedFrom || approvedTo || vesselId || accountId || statuses.length > 0;
|
const hasFilters = dateFrom || dateTo || vesselId || accountId || statuses.length > 0;
|
||||||
|
|
||||||
const statusLabel =
|
const statusLabel =
|
||||||
statuses.length === 0
|
statuses.length === 0
|
||||||
|
|
@ -112,16 +108,6 @@ export function HistoryFilters({ vessels, accounts, perPageOptions, defaultPerPa
|
||||||
<input type="date" value={dateTo} onChange={(e) => setDateTo(e.target.value)}
|
<input type="date" value={dateTo} onChange={(e) => setDateTo(e.target.value)}
|
||||||
className="w-full rounded-lg border border-neutral-300 px-3 py-2 text-sm focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20" />
|
className="w-full rounded-lg border border-neutral-300 px-3 py-2 text-sm focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<label className="block text-xs font-medium text-neutral-600 mb-1">Approved From</label>
|
|
||||||
<input type="date" value={approvedFrom} onChange={(e) => setApprovedFrom(e.target.value)}
|
|
||||||
className="w-full rounded-lg border border-neutral-300 px-3 py-2 text-sm focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20" />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-xs font-medium text-neutral-600 mb-1">Approved To</label>
|
|
||||||
<input type="date" value={approvedTo} onChange={(e) => setApprovedTo(e.target.value)}
|
|
||||||
className="w-full rounded-lg border border-neutral-300 px-3 py-2 text-sm focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20" />
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<label className="block text-xs font-medium text-neutral-600 mb-1">Cost Centre</label>
|
<label className="block text-xs font-medium text-neutral-600 mb-1">Cost Centre</label>
|
||||||
<select value={vesselId} onChange={(e) => setVesselId(e.target.value)}
|
<select value={vesselId} onChange={(e) => setVesselId(e.target.value)}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue