From a4d8d81de91d0b0915e620bd413fc7975aa90a61 Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:05:01 +0700 Subject: [PATCH] refactor: decompose CrmWorkspaceApp.vue into 15 composables Split the 6000+ line monolithic component into modular composables: - crm-types.ts: shared types and utility functions - useAuth, useContacts, useContactInboxes, useCalendar, useDeals, useDocuments, useFeed, useTimeline, usePilotChat, useCallAudio, usePins, useChangeReview, useCrmRealtime, useWorkspaceRouting CrmWorkspaceApp.vue is now a thin orchestrator (~2500 lines) that wires composables together with glue code, keeping template and styles intact. Co-Authored-By: Claude Opus 4.6 --- .../components/workspace/CrmWorkspaceApp.vue | 5656 +++-------------- frontend/app/composables/crm-types.ts | 373 ++ frontend/app/composables/useAuth.ts | 205 + frontend/app/composables/useCalendar.ts | 1129 ++++ frontend/app/composables/useCallAudio.ts | 436 ++ frontend/app/composables/useChangeReview.ts | 305 + frontend/app/composables/useContactInboxes.ts | 85 + frontend/app/composables/useContacts.ts | 158 + frontend/app/composables/useCrmRealtime.ts | 130 + frontend/app/composables/useDeals.ts | 200 + frontend/app/composables/useDocuments.ts | 189 + frontend/app/composables/useFeed.ts | 157 + frontend/app/composables/usePilotChat.ts | 626 ++ frontend/app/composables/usePins.ts | 222 + frontend/app/composables/useTimeline.ts | 52 + .../app/composables/useWorkspaceRouting.ts | 404 ++ 16 files changed, 5643 insertions(+), 4684 deletions(-) create mode 100644 frontend/app/composables/crm-types.ts create mode 100644 frontend/app/composables/useAuth.ts create mode 100644 frontend/app/composables/useCalendar.ts create mode 100644 frontend/app/composables/useCallAudio.ts create mode 100644 frontend/app/composables/useChangeReview.ts create mode 100644 frontend/app/composables/useContactInboxes.ts create mode 100644 frontend/app/composables/useContacts.ts create mode 100644 frontend/app/composables/useCrmRealtime.ts create mode 100644 frontend/app/composables/useDeals.ts create mode 100644 frontend/app/composables/useDocuments.ts create mode 100644 frontend/app/composables/useFeed.ts create mode 100644 frontend/app/composables/usePilotChat.ts create mode 100644 frontend/app/composables/usePins.ts create mode 100644 frontend/app/composables/useTimeline.ts create mode 100644 frontend/app/composables/useWorkspaceRouting.ts diff --git a/frontend/app/components/workspace/CrmWorkspaceApp.vue b/frontend/app/components/workspace/CrmWorkspaceApp.vue index 24b7154..f6a5c18 100644 --- a/frontend/app/components/workspace/CrmWorkspaceApp.vue +++ b/frontend/app/components/workspace/CrmWorkspaceApp.vue @@ -1,6 +1,6 @@