louispaulb
c6b2dd1491
refactor: extract composables from 5 largest files — net -1950 lines from main components
DispatchPage.vue: 1320→1217 lines
- Extract SbModal.vue + SbContextMenu.vue reusable components
- Extract useAbsenceResize composable
- Extract dispatch constants to config/dispatch.js
ProjectWizard.vue: 1185→673 lines (-43%)
- Extract useWizardPublish composable (270-line publish function)
- Extract useWizardCatalog composable
- Extract wizard-constants.js (step labels, options, categories)
SettingsPage.vue: 1172→850 lines (-27%)
- Extract usePermissionMatrix composable
- Extract useUserGroups composable
- Extract useLegacySync composable
ClientDetailPage.vue: 1169→864 lines (-26%)
- Extract useClientData composable (loadCustomer broken into sub-functions)
- Extract useEquipmentActions composable
- Extract client-constants.js + erp-pdf.js utility
checkout.js: 639→408 lines (-36%)
- Extract address-search.js module
- Extract otp.js module
- Extract email-templates.js module
- Extract project-templates.js module
- Add erpQuery() helper to DRY repeated URL construction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>