File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -123,7 +123,7 @@ const hasMore = computed(() => items.value.length > showLimit);
123123 </span >
124124 </div >
125125
126- <div v-if =" editableSummary" class =" mt-1.5 flex items-start gap-1" >
126+ <div v-if =" editableSummary" class =" mt-1.5 flex items-center gap-1" >
127127 <p
128128 v-if =" payload.summary"
129129 class =" card-summary italic"
Original file line number Diff line number Diff line change @@ -147,7 +147,8 @@ async function updateSummary(newSummary: string) {
147147
148148 <div
149149 ref =" titleContainerRef"
150- class =" flex-1 min-w-0 flex items-center cursor-text"
150+ class =" flex-1 min-w-0 flex items-center cursor-text overflow-hidden"
151+ :title =" card.title || '(без названия)'"
151152 @dblclick.prevent =" startEditTitle()"
152153 >
153154 <template v-if =" isEditingTitle " >
@@ -162,7 +163,7 @@ async function updateSummary(newSummary: string) {
162163 </template >
163164 <p
164165 v-else
165- class =" text-sm font-medium text-fg min-w-0 truncate leading-none pointer-events-none"
166+ class =" text-sm font-medium text-fg min-w-0 break-words line-clamp-2 leading-snug pointer-events-none"
166167 :class =" { 'line-through': card.done }"
167168 >
168169 {{ card.title || '(без названия)' }}
Original file line number Diff line number Diff line change @@ -52,7 +52,7 @@ function closeSummaryModal() {
5252
5353<template >
5454 <div class =" p-3" >
55- <div v-if =" editableSummary" class =" mt-1.5 flex items-start gap-1" >
55+ <div v-if =" editableSummary" class =" mt-1.5 flex items-center gap-1" >
5656 <p
5757 v-if =" payload.summary"
5858 class =" card-summary"
Original file line number Diff line number Diff line change @@ -90,7 +90,7 @@ function closeSummaryModal() {
9090 </button >
9191 </div >
9292 </div >
93- <div v-if =" editableSummary" class =" mt-1.5 flex items-start gap-1" >
93+ <div v-if =" editableSummary" class =" mt-1.5 flex items-center gap-1" >
9494 <div class =" flex-1 min-w-0" >
9595 <p
9696 v-if =" payload.summary"
Original file line number Diff line number Diff line change @@ -27,7 +27,10 @@ function handleSignOut() {
2727 <div class =" h-full max-w-7xl mx-auto px-4 flex-between" >
2828 <!-- Logo -->
2929 <RouterLink to =" /" class =" flex items-center gap-2 text-xl font-semibold text-fg" >
30- <span class =" w-8 h-8 rounded-lg flex-center bg-success text-on-primary pointer-events-none" aria-hidden =" true" >
30+ <span
31+ class =" w-8 h-8 rounded-lg flex-center bg-success text-on-primary pointer-events-none"
32+ aria-hidden =" true"
33+ >
3134 <span class =" i-lucide-square-check text-lg" />
3235 </span >
3336 DayFlow
@@ -57,7 +60,7 @@ function handleSignOut() {
5760 alt =" "
5861 class =" w-8 h-8 rounded-full object-cover"
5962 @error =" avatarLoadFailed = true"
60- >
63+ / >
6164 <span v-else class =" i-lucide-user text-lg" />
6265 </RouterLink >
6366
@@ -78,6 +81,13 @@ function handleSignOut() {
7881 <span class =" i-lucide-user" />
7982 Профиль
8083 </RouterLink >
84+ <RouterLink
85+ :to =" `/user/${authStore.user?.id}`"
86+ class =" w-full flex items-center gap-2 px-3 py-2 text-sm text-fg hover:bg-muted rounded-md"
87+ >
88+ <span class =" i-lucide-bar-chart-2" />
89+ Моя статистика
90+ </RouterLink >
8191 <button
8292 @click =" handleSignOut"
8393 class =" w-full flex items-center gap-2 px-3 py-2 text-sm text-fg hover:bg-muted rounded-md"
Original file line number Diff line number Diff line change @@ -129,21 +129,21 @@ async function deleteColumn() {
129129
130130 <div
131131 ref =" cardsListRef"
132- class =" flex-1 overflow-y-auto px-2 pb-2 space-y -2 min-h-[2rem]"
132+ class =" flex-1 overflow-y-auto px-2 pb-2 flex flex-col gap -2 min-h-[2rem]"
133133 :data-column-id =" isBacklog ? undefined : column.id"
134134 :data-backlog =" isBacklog ? true : undefined"
135135 >
136+ <button type =" button" @click =" showAddCard = true" class =" btn-add-dashed sortable-no-drag flex-shrink-0 order-first" >
137+ <span class =" i-lucide-plus text-sm" />
138+ Добавить карточку
139+ </button >
136140 <template v-if =" isBacklog " >
137141 <CardItem
138142 v-for =" c in backlogCards"
139143 :key =" c.id"
140144 :card =" c"
141145 :is-backlog =" true"
142146 />
143- <button type =" button" @click =" showAddCard = true" class =" btn-add-dashed sortable-no-drag" >
144- <span class =" i-lucide-plus text-sm" />
145- Добавить карточку
146- </button >
147147 </template >
148148 <template v-else >
149149 <CardItem
@@ -152,10 +152,6 @@ async function deleteColumn() {
152152 :card =" card"
153153 :column-id =" column.id"
154154 />
155- <button type =" button" @click =" showAddCard = true" class =" btn-add-dashed sortable-no-drag" >
156- <span class =" i-lucide-plus text-sm" />
157- Добавить карточку
158- </button >
159155 </template >
160156 </div >
161157
Original file line number Diff line number Diff line change @@ -113,3 +113,21 @@ export const CARD_QUERY = gql`
113113 }
114114 }
115115` ;
116+
117+ export const USER_STATS_QUERY = gql `
118+ query UserStats($userId: ID!) {
119+ userStats(userId: $userId) {
120+ id
121+ avatarUrl
122+ totalCompletedCards
123+ workspaceStats {
124+ id
125+ title
126+ description
127+ icon
128+ totalCards
129+ completedCards
130+ }
131+ }
132+ }
133+ ` ;
Original file line number Diff line number Diff line change @@ -33,6 +33,12 @@ const router = createRouter({
3333 component : ( ) => import ( '@/views/ProfileView.vue' ) ,
3434 meta : { requiresAuth : true } ,
3535 } ,
36+ {
37+ path : '/user/:id' ,
38+ name : 'user-stats' ,
39+ component : ( ) => import ( '@/views/UserStatsView.vue' ) ,
40+ meta : { requiresAuth : true } ,
41+ } ,
3642 ] ,
3743} ) ;
3844
Original file line number Diff line number Diff line change @@ -131,7 +131,7 @@ function navigateToWorkspace(id: string) {
131131 </div >
132132
133133 <!-- Empty State -->
134- <div v-else class =" text-center py-16" >
134+ <div v-else class =" text-center py-16 flex flex-col items-center gap-4 " >
135135 <div class =" empty-state-icon" >
136136 <span class =" i-lucide-folder text-2xl text-fg-muted" />
137137 </div >
Original file line number Diff line number Diff line change @@ -45,10 +45,20 @@ async function save() {
4545 Настройки аккаунта
4646 </p >
4747 </div >
48- <RouterLink to =" /" class =" btn-ghost text-sm text-fg-muted hover:text-fg" >
49- <span class =" i-lucide-arrow-left mr-1" />
50- На главную
51- </RouterLink >
48+ <div class =" flex items-center gap-3" >
49+ <RouterLink to =" /" class =" btn-ghost text-sm text-fg-muted hover:text-fg" >
50+ <span class =" i-lucide-arrow-left mr-1" />
51+ На главную
52+ </RouterLink >
53+ <RouterLink
54+ v-if =" user"
55+ :to =" `/user/${user.id}`"
56+ class =" btn-ghost text-sm text-fg-muted hover:text-fg"
57+ >
58+ <span class =" i-lucide-bar-chart-2 mr-1" />
59+ Моя статистика
60+ </RouterLink >
61+ </div >
5262 </div >
5363
5464 <div v-if =" user" class =" space-y-6" >
You can’t perform that action at this time.
0 commit comments