refactor(composables): migrate stores →

composables, align with updated API

  - Replace deleted Pinia stores with
  module-level singleton composables
    (useAuth, useChat, useFeed, useUi) — all
  return reactive({...}) so
    Refs auto-unwrap in both templates and
  script code

  - Align entire codebase with new
  swagger-generated api.ts types:
    · TagDto.value  (was .name) — FeedCard,
  FeedFilters, ProfileEditor,
      ProfileSetupView, MyProfileView,
  ProfileDetailView, useUi
    · MediaItemDto[] / .path  (was mediaUrls[],
  avatarUrl) — FeedCard,
      FeedView, MyProfileView,
  ProfileDetailView
    · ChatDto.status 'active'|'closed'  (was
  isActive: boolean) —
      ChatRoomView, ChatsListView
    · MessageDto.profileId  (was senderId) —
  ChatRoomView, ChatBubble
    · MeResponseDto → fetchMe now calls /me +
  /profiles/my in parallel
    · Token refresh: res.data.data.accessToken
  (nested wrapper) —
      router/index.ts aligned with client.ts
  interceptor

  - Fix FeedCard, ChatBubble imports pointing
  to deleted store files
  - Fix ProfileSetupView form type to avoid
  string|undefined on v-model
  - Fix history.back() → window.history.back()
  via goBack() helper
  - Fix chat.unreadCount possibly-undefined
  guard in ChatsListView
  - Fix MapPicker Leaflet icon cast (as unknown
  as Record<string, unknown>)
This commit is contained in:
Oscar
2026-06-08 15:01:54 +03:00
parent f5e34f3a97
commit 10d696f4ca
41 changed files with 913 additions and 673 deletions

View File

@@ -4,21 +4,21 @@ Vue 3 + Vite + Tauri v2. Работает как PWA в браузере и ка
## Стек
| Слой | Технология |
|---|---|
| UI framework | Vue 3 (Composition API, `<script setup>`) |
| Build tool | Vite 6 |
| Desktop shell | Tauri v2 |
| State management | Pinia |
| Routing | Vue Router 4 |
| Слой | Технология |
|---|-------------------------------------------------|
| UI framework | Vue 3 (Composition API, `<script setup>`) |
| Build tool | Vite 6 |
| Desktop shell | Tauri v2 |
| State management | Composables | |
| Routing | Vue Router 4 |
| HTTP client | Axios (сгенерированный клиент `src/api/api.ts`) |
| Форм-валидация | Vuelidate |
| Анимации | GSAP 3 |
| Карты | Leaflet |
| Утилиты | VueUse |
| CSS | SCSS + Tailwind v4 (reset-only) |
| Package manager | pnpm |
| TypeScript | строгий режим, `no any` |
| Форм-валидация | Vuelidate |
| Анимации | GSAP 3 |
| Карты | Leaflet |
| Утилиты | VueUse |
| CSS | SCSS + Tailwind v4 (reset-only) |
| Package manager | pnpm |
| TypeScript | строгий режим, `no any` |
---