HoursData type (defined in ClockInOut.tsx) includes a sessions array of { clockIn: string, clockOut?: string } objects. The data is already returned from payroll/hours-history; this is a rendering gap, not a data gap.ClockInOut dashboard widget already renders session-level history for the logged-in employee using this same sessions array — formatting clock-in/out times and per-session duration. That rendering logic is the direct reference for what needs to be added to the manager-facing hours view.Locked
HoursData.sessions is already returned from payroll/hours-history; no new backend endpoint needed.Frontend
attik/apps/frontend/src/app/tools/hr/payroll/PayrollOverview.tsx — Primary manager-facing table. Inline session sub-rows would be added within the existing day-level row rendering.attik/apps/frontend/src/app/tools/hr/payroll/PayrollBase.tsx — Likely orchestrates the hours data fetch alongside payroll; relevant if data shape changes are threaded through.attik/apps/frontend/src/components/dashboard/ClockInOut/ClockInOut.tsx — Reference implementation. Contains the session rendering logic (sessions.map) using tzDayjs(session.clockIn).format('h:mm A') that can be extracted or adapted for the manager view.payroll/hours-history — existing endpoint returning HoursData[] with sessions arrayClockSession type: { clockIn: string; clockOut?: string } defined in ClockInOut.tsxPlease authenticate to join the conversation.
Planned
Main App
About 3 hours ago
Linear
Get notified by email when there are changes.
Planned
Main App
About 3 hours ago
Linear
Get notified by email when there are changes.