Sharang Parnerkar
f7b77fd504
refactor(admin): split company-profile page.tsx (3017 LOC) into colocated components
Extract the monolithic company-profile wizard into _components/ and _hooks/
following Next.js 15 conventions from AGENTS.typescript.md:
- _components/constants.ts: wizard steps, legal forms, industries, certifications
- _components/types.ts: local interfaces (ProcessingActivity, AISystem, etc.)
- _components/activity-data.ts: DSGVO data categories, department/activity templates
- _components/ai-system-data.ts: AI system template catalog
- _components/StepBasicInfo.tsx: step 1 (company name, legal form, industry)
- _components/StepBusinessModel.tsx: step 2 (B2B/B2C, offerings)
- _components/StepCompanySize.tsx: step 3 (size, revenue)
- _components/StepLocations.tsx: step 4 (headquarters, target markets)
- _components/StepDataProtection.tsx: step 5 (DSGVO roles, DPO)
- _components/StepProcessing.tsx: processing activities with category checkboxes
- _components/StepAISystems.tsx: AI system inventory
- _components/StepLegalFramework.tsx: certifications and contacts
- _components/StepMachineBuilder.tsx: machine builder profile (step 7)
- _components/ProfileSummary.tsx: completion summary view
- _hooks/useCompanyProfileForm.ts: form state, auto-save, navigation logic
- page.tsx: thin orchestrator (160 LOC), imports and composes sections
All 16 files are under 500 LOC (largest: StepProcessing at 343).
Build verified: npx next build passes cleanly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 18:50:30 +02:00
..
2026-03-04 11:43:00 +01:00
2026-03-10 23:43:56 +01:00
2026-03-05 08:42:40 +01:00
2026-03-04 11:43:00 +01:00
2026-03-08 13:31:16 +01:00
2026-03-07 14:53:31 +01:00
2026-03-04 11:43:00 +01:00
2026-03-07 09:45:56 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 14:35:52 +01:00
2026-03-08 14:25:41 +01:00
2026-04-11 18:50:30 +02:00
2026-03-07 23:25:25 +01:00
2026-03-11 14:58:29 +01:00
2026-03-04 11:43:00 +01:00
2026-03-05 00:36:24 +01:00
2026-03-13 09:03:37 +01:00
2026-03-12 19:55:06 +01:00
2026-03-05 14:20:35 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-07 19:00:33 +01:00
2026-03-04 11:43:00 +01:00
2026-03-05 17:24:15 +01:00
2026-03-04 11:43:00 +01:00
2026-03-06 18:21:43 +01:00
2026-03-04 11:43:00 +01:00
2026-03-07 19:00:33 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-07 15:13:19 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-10 10:29:24 +01:00
2026-03-08 14:30:38 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-07 09:45:56 +01:00
2026-03-04 22:41:05 +01:00
2026-03-05 15:11:10 +01:00
2026-03-04 11:43:00 +01:00
2026-03-08 14:38:46 +01:00
2026-03-05 12:07:01 +01:00
2026-03-10 22:30:31 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 17:43:29 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-04 11:43:00 +01:00
2026-03-10 23:43:56 +01:00
2026-03-04 11:43:00 +01:00
2026-03-10 14:47:20 +01:00
2026-03-04 11:43:00 +01:00
2026-03-09 20:43:23 +01:00
2026-03-04 11:43:00 +01:00
2026-03-08 14:30:38 +01:00
2026-03-09 15:24:17 +01:00
2026-03-09 17:48:02 +01:00