Ruslan Bakiev
947ef4d56d
refactor: migrate CRM data layer from manual gqlFetch to Apollo Client
...
Replace custom gqlFetch() with proper Apollo useQuery/useMutation hooks
powered by codegen-generated TypedDocumentNode types. Key changes:
- Add GraphQL SDL schema file and codegen config for typescript-vue-apollo
- Replace all 28 raw .graphql imports with generated typed documents
- Add 12 useQuery() hooks with cache-and-network fetch policy
- Add 17 useMutation() hooks with surgical refetchQueries per mutation
- Optimistic cache update for setContactInboxHidden (instant archive UX)
- Fix contact list subtitle: show lastText instead of channel name
- Migrate login page from gqlFetch to useMutation
- WebSocket realtime now calls Apollo refetch instead of full data reload
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-24 10:07:35 +07:00
Ruslan Bakiev
c5d3a90413
refactor(voice): extract chat dictation into reusable component
2026-02-23 19:43:00 +07:00
Ruslan Bakiev
c1e8f912d1
fix(communications): restore voice dictation in message composer
2026-02-23 19:34:39 +07:00
Ruslan Bakiev
faea65dfcb
style(communications): show call play button only on waveform hover
2026-02-23 19:21:54 +07:00
Ruslan Bakiev
2e1014d726
style(communications): center play control on call waveform
2026-02-23 18:44:35 +07:00
Ruslan Bakiev
5fb8113ed7
feat(communications): add play/pause for call voice messages
2026-02-23 18:42:21 +07:00
Ruslan Bakiev
94c01516ba
precompute call waveforms and stop list-time audio loading
2026-02-23 16:02:57 +07:00
Ruslan Bakiev
0bbeef5594
fix(calendar): scope zoom selectors by layer and stretch week days to full height
2026-02-23 15:32:52 +07:00
Ruslan Bakiev
df8c06d313
refactor(review): rollback-only flow and compact change summary
2026-02-23 15:28:46 +07:00
Ruslan Bakiev
ec94dd6e2a
fix(calendar): zoom selected block first, then commit level
2026-02-23 14:56:11 +07:00
Ruslan Bakiev
60b9bb9fd1
remove contact company/country/location across db and ui
2026-02-23 14:52:26 +07:00
Ruslan Bakiev
f6b738352b
fix(calendar): use full available calendar viewport height on desktop
2026-02-23 14:40:59 +07:00
Ruslan Bakiev
db49c4a830
fix(calendar): make nested block zoom smooth in both directions
2026-02-23 14:33:24 +07:00
Ruslan Bakiev
6ad53e64c5
feat(documents): delete document from context menu
2026-02-23 14:27:00 +07:00
Ruslan Bakiev
68cbe7bc64
fix(chat-ui): move source settings to thread header
2026-02-23 14:24:58 +07:00
Ruslan Bakiev
a19ba07baa
fix(chat-ui): align voice cards by message direction
2026-02-23 12:52:33 +07:00
Ruslan Bakiev
894210cd42
fix(calendar): remove overlay swap and keep in-place zoom flow
2026-02-23 12:50:11 +07:00
Ruslan Bakiev
d3b751db65
refactor(graphql): replace dashboard query with resource queries
2026-02-23 12:46:29 +07:00
Ruslan Bakiev
aa465f65bd
feat(workspace): add hidden contacts filter and remove calendar scene swap
2026-02-23 12:38:30 +07:00
Ruslan Bakiev
c94c229a1a
fix: avoid pilot sidebar trim crash on input prop
2026-02-23 12:03:51 +07:00
Ruslan Bakiev
43960d0374
feat(auth): enforce login route with global middleware
2026-02-23 12:01:03 +07:00
Ruslan Bakiev
5918a0593d
fix(workspace): guard trim calls against undefined data
2026-02-23 11:51:55 +07:00
Ruslan Bakiev
8be6e7d581
refactor(workspace): extract communications sidebars
2026-02-23 11:44:53 +07:00
Ruslan Bakiev
82bc5dd04e
refactor(frontend): extract calendar scene into workspace component
2026-02-23 11:35:57 +07:00
Ruslan Bakiev
d5f7280297
refactor(frontend): extract pilot sidebar into workspace component
2026-02-23 11:30:49 +07:00
Ruslan Bakiev
2b72d42956
refactor(frontend): split documents and review into workspace components
2026-02-23 11:22:05 +07:00
Ruslan Bakiev
47ed805ac7
refactor(frontend): extract auth and topbar workspace components
2026-02-23 11:15:29 +07:00
Ruslan Bakiev
e5030a321f
refactor(nuxt): split CRM into page routes and workspace shell
2026-02-23 11:09:59 +07:00