feat(calendar): click due-date day to navigate to filtered Reporting view

- CalendarWidget accepts onDateClick prop; due-date cells are clickable
  with pointer cursor, red hover highlight, and updated tooltip
- App.js wires onDateClick: sets calendarFilter state and navigates to
  the Reporting page
- NavDrawer navigation to Reporting clears calendarFilter so it only
  applies on calendar-initiated navigation
- ReportingPage accepts filterDate prop; initializes columnFilters with
  { dueDate: Set([filterDate]) } so the view lands pre-filtered
- Existing Clear Filters button lets the user dismiss the filter normally

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 14:09:08 -06:00
parent 669396f635
commit 51b1f99b3a
3 changed files with 24 additions and 8 deletions

View File

@@ -564,7 +564,7 @@ function TableCell({ colKey, finding }) {
// ---------------------------------------------------------------------------
// Main ReportingPage
// ---------------------------------------------------------------------------
export default function ReportingPage() {
export default function ReportingPage({ filterDate }) {
const [findings, setFindings] = useState([]);
const [total, setTotal] = useState(null);
const [syncedAt, setSyncedAt] = useState(null);
@@ -574,7 +574,9 @@ export default function ReportingPage() {
const [syncing, setSyncing] = useState(false);
const [sort, setSort] = useState({ field: 'severity', dir: 'desc' });
const [columnOrder, setColumnOrder] = useState(loadColumnOrder);
const [columnFilters, setColumnFilters] = useState({});
const [columnFilters, setColumnFilters] = useState(() =>
filterDate ? { dueDate: new Set([filterDate]) } : {}
);
const [openFilter, setOpenFilter] = useState(null);
const filterBtnRefs = useRef({});