Ignore:
Timestamp:
06/23/26 17:20:47 (13 days ago)
Author:
kikisrbinoska <srbinoskakristina07@…>
Branches:
main
Children:
99c1e45
Parents:
b373fea
Message:

Fixed user profile and reading lists

Location:
chapterx-frontend/src/store
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • chapterx-frontend/src/store/authStore.ts

    rb373fea r0b502c2  
    1818  setShowMatureContent: (show: boolean) => void
    1919  updateUserRole: (userId: number, role: UserRole) => void
     20  updateUser: (userId: number, data: { username: string; email: string; name: string; surname: string }) => Promise<void>
    2021  addUser: (user: User) => void
    2122  fetchAllUsers: () => Promise<void>
     
    6667        )
    6768        if (!user) throw new Error('User not found. Try using a quick-login option.')
    68         set({ currentUser: user, token: 'mock-token' })
     69        set({ currentUser: user, token: null })
    6970      },
    7071
     
    110111          allUsers: [...state.allUsers, newUser],
    111112          currentUser: newUser,
    112           token: 'mock-token',
     113          token: null,
    113114        }))
    114115      },
     
    120121        }
    121122        const user = get().allUsers.find(u => u.user_id === userId)
    122         if (user) set({ currentUser: user, token: 'mock-token' })
     123        if (user) set({ currentUser: user, token: null })
    123124      },
    124125
     
    133134              : state.currentUser,
    134135        })),
     136
     137      updateUser: async (userId, data) => {
     138        const { token } = get()
     139        await axios.put(`${API_BASE}/users/${userId}`, { id: userId, ...data }, {
     140          headers: token ? { Authorization: `Bearer ${token}` } : {},
     141        })
     142        set(state => ({
     143          allUsers: state.allUsers.map(u => u.user_id === userId ? { ...u, ...data } : u),
     144          currentUser: state.currentUser?.user_id === userId ? { ...state.currentUser, ...data } : state.currentUser,
     145        }))
     146      },
    135147
    136148      addUser: (user: User) =>
  • chapterx-frontend/src/store/storyStore.ts

    rb373fea r0b502c2  
    4949  try {
    5050    const token = JSON.parse(localStorage.getItem('chapterx-auth') || '{}')?.state?.token
    51     return token ? { Authorization: `Bearer ${token}` } : {}
     51    if (!token || token === 'mock-token') return {}
     52    return { Authorization: `Bearer ${token}` }
    5253  } catch {
    5354    return {}
     
    145146        created_at: s.createdAt,
    146147        updated_at: s.updatedAt,
    147         total_likes: 0,
    148         total_comments: 0,
    149         total_chapters: 0,
    150         total_views: 0,
     148        total_likes: s.likes?.length ?? 0,
     149        total_comments: s.comments?.length ?? 0,
     150        total_chapters: s.chapters?.length ?? 0,
     151        total_views: s.chapters?.reduce((sum: number, c: any) => sum + (c.viewCount ?? 0), 0) ?? 0,
    151152        genres: (s.hasGenres ?? []).map((hg: any) => hg.genre?.name ?? hg.name).filter(Boolean),
    152153      }))
Note: See TracChangeset for help on using the changeset viewer.