Add OSHA Form 301 and Osha page components
CI / Lint, typecheck, test, build (push) Canceled after 0s
CI / End-to-end tests (push) Canceled after 0s

- Implemented Form301 component for displaying OSHA Form 301 equivalent, including employee and case information.
- Created Osha component to manage OSHA recordkeeping, including tabs for 300 Log, 300A Summary, Hours & rates, and Submit to OSHA.
- Added functionality for printing and downloading CSV files for OSHA submissions.
- Integrated loading and error handling states for data fetching.
This commit is contained in:
jayjennings committed 2026-10-06 13:09:57 -07:00
1 parent 3e964d1176
commit 61c876edec
59 files changed
+9180 -183

No files matched your search

+5 -1
View File
@@ -6,6 +6,7 @@ import { IncidentTable } from '../components/IncidentTable'
import { Page } from '../components/Page'
import { PageIntro } from '../components/PageIntro'
import { Pagination } from '../components/Pagination'
import { SavedViews } from '../components/SavedViews'
import { Empty, ErrorMessage, Loading } from '../components/QueryState'
import { filterBox, panel, primaryButton, secondaryButton } from '../components/styles'
import { incidentTypeLabel, severityLabel, statusLabel } from '../lib/labels'
@@ -113,7 +114,10 @@ export function Incidents() {
</select>
</div>
)}
<a className={`${secondaryButton} lg:ml-auto`} href={`/api/incidents/export${filtersToQuery(filters)}`} download>
<div className="lg:ml-auto">
<SavedViews page="incidents" keys={['q', 'type', 'severity', 'status', 'siteId']} />
</div>
<a className={secondaryButton} href={`/api/incidents/export${filtersToQuery(filters)}`} download>
<FileDown size={16} /> Export CSV
</a>
</div>