import { BarChart3, Calendar, ChevronDown, ChevronUp, ExternalLink, Globe, Link2, UserCheck, Users, } from 'lucide-react'; import { generatePath, Link } from 'react-router-dom'; import { formatAttendanceDate } from '@/business/campus-attendance/selectors'; import { AttendanceSummaryCard } from '@/components/campus-attendance/AttendanceSummaryCard'; import { percentageBackgroundClass, percentageBorderClass, percentageTextClass, } from '@/components/campus-attendance/styles'; import type { CampusAttendancePageActions, CampusAttendancePageState, } from '@/components/campus-attendance/types'; import { useScopeContext } from '@/contexts/scope-context'; import { APP_ROUTE_PATHS } from '@/shared/constants/routes'; type SuperintendentAttendanceViewProps = { state: CampusAttendancePageState; actions: CampusAttendancePageActions; }; export function SuperintendentAttendanceView({ state, actions }: SuperintendentAttendanceViewProps) { const { selectedTenant } = useScopeContext(); const { today, weekStart, overallStats, combinedStats, staffSummary, campusStats, attendanceChildStats, expandedCampus, scopeModel, } = state; const staffRecordTotal = staffSummary.summary ? Math.max( staffSummary.summary.staffCount, staffSummary.summary.present + staffSummary.summary.late + staffSummary.summary.absent, ) : null; const staffPresentOrLate = staffSummary.summary ? staffSummary.summary.present + staffSummary.summary.late : null; const staffAttendanceHelper = staffRecordTotal && staffPresentOrLate !== null ? `${staffPresentOrLate}/${staffRecordTotal} present or late` : scopeModel.aggregateHelper; const scopeRouteState = { __scope: selectedTenant }; return ( <>
{child.fullName}
Today
{child.todayPct !== null ? `${child.todayPct}%` : 'N/A'}
Week Avg
{child.weekAvg !== null ? `${child.weekAvg}%` : 'N/A'}
Enrolled
{child.todayRecord.total_enrolled}
Present
{child.todayRecord.total_present}
Absent
{child.todayRecord.total_absent}
{scopeModel.emptyHistoryMessage}
{campus.fullName}
{campus.config?.updated_by && (Updated by {campus.config.updated_by}
)}