From 6fef9f40fd2e55d458affbad934dc5cda95b106e Mon Sep 17 00:00:00 2001 From: CeeJayyy007 <63643138+CeeJayyy007@users.noreply.github.com> Date: Fri, 18 Jul 2025 22:21:14 -0400 Subject: [PATCH 1/2] chore: update lock icon style --- .../src/features/events/components/common/event-card.tsx | 4 ++-- .../frontend/src/features/events/components/event-list.tsx | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/frontend/src/features/events/components/common/event-card.tsx b/packages/frontend/src/features/events/components/common/event-card.tsx index 8acdcbe..bb88ca7 100644 --- a/packages/frontend/src/features/events/components/common/event-card.tsx +++ b/packages/frontend/src/features/events/components/common/event-card.tsx @@ -135,9 +135,9 @@ export const EventCard = ({ )} {type === EventType.PRIVATE ? ( - + ) : ( - + )} diff --git a/packages/frontend/src/features/events/components/event-list.tsx b/packages/frontend/src/features/events/components/event-list.tsx index b1a1c11..596e01b 100644 --- a/packages/frontend/src/features/events/components/event-list.tsx +++ b/packages/frontend/src/features/events/components/event-list.tsx @@ -57,8 +57,6 @@ export const EventList = () => { fetchSubscribers(); }, [fetchEvents, fetchEventSubscriptions, user?.id]); - console.log('eventSubscriptions', eventSubscriptions); - // Pagination helpers const getPageEvents = (eventsList: Event[]) => { const startIndex = (currentPage - 1) * eventsPerPage; @@ -107,8 +105,6 @@ export const EventList = () => { setCurrentPage(page); }; - console.log('events', events); - if (isLoading || eventsLoading) { return (
From f0eb49837d30585c792b194f478c1da05f36d1c2 Mon Sep 17 00:00:00 2001 From: CeeJayyy007 <63643138+CeeJayyy007@users.noreply.github.com> Date: Sat, 19 Jul 2025 01:00:54 -0400 Subject: [PATCH 2/2] fix: handle restore and update delete user flow --- packages/backend/src/admin/admin.controller.ts | 2 ++ packages/backend/src/admin/admin.service.ts | 2 +- .../src/admin/dto/user-management.dto.ts | 18 ++++++++++++++++-- .../src/features/admin/store/admin-store.ts | 9 ++++++--- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/admin/admin.controller.ts b/packages/backend/src/admin/admin.controller.ts index dad32c9..27237b0 100644 --- a/packages/backend/src/admin/admin.controller.ts +++ b/packages/backend/src/admin/admin.controller.ts @@ -173,6 +173,8 @@ export class AdminController { @Body() updateUserStatusDto: UpdateUserStatusDto, @GetUser('sub') adminId: number, ) { + console.log(updateUserStatusDto, id, adminId); + return this.adminService.updateUserStatus( id, updateUserStatusDto.isActive, diff --git a/packages/backend/src/admin/admin.service.ts b/packages/backend/src/admin/admin.service.ts index cd23a2f..f881a41 100644 --- a/packages/backend/src/admin/admin.service.ts +++ b/packages/backend/src/admin/admin.service.ts @@ -653,7 +653,7 @@ export class AdminService { throw new BadRequestException('Cannot change your own status'); } - // Check if user exists + // Check if user exists (including deleted users) const user = await this.prisma.users.findUnique({ where: { id }, }); diff --git a/packages/backend/src/admin/dto/user-management.dto.ts b/packages/backend/src/admin/dto/user-management.dto.ts index 0bfedd2..bd362f5 100644 --- a/packages/backend/src/admin/dto/user-management.dto.ts +++ b/packages/backend/src/admin/dto/user-management.dto.ts @@ -1,6 +1,13 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; -import { IsEnum, IsInt, IsOptional, IsString, Min } from 'class-validator'; -import { Type } from 'class-transformer'; +import { + IsEnum, + IsInt, + IsOptional, + IsString, + Min, + IsBoolean, +} from 'class-validator'; +import { Transform, Type } from 'class-transformer'; import { users_roles } from '@prisma/client'; export class UpdateUserRoleDto { @@ -17,6 +24,13 @@ export class UpdateUserStatusDto { type: Boolean, description: 'User account status (true = active, false = inactive)', }) + @IsBoolean() + @Transform(({ value }) => { + if (typeof value === 'string') { + return value === 'true'; + } + return value; + }) isActive: boolean; } diff --git a/packages/frontend/src/features/admin/store/admin-store.ts b/packages/frontend/src/features/admin/store/admin-store.ts index 0a7e8df..a86361e 100644 --- a/packages/frontend/src/features/admin/store/admin-store.ts +++ b/packages/frontend/src/features/admin/store/admin-store.ts @@ -202,16 +202,19 @@ export const useAdminStore = create()( deleteUser: async (id) => { try { set({ isLoading: true, error: null }); - const response = await adminApi.deleteUser(id); + const response = await adminApi.updateUserStatus(id, false); if (!response.success) { throw new Error('Failed to delete user'); } + const updatedUser = response.data; set((state) => ({ - users: state.users.filter((user) => user.id !== id), + users: state.users.map((user) => + user.id === id ? updatedUser : user + ), selectedUser: - state.selectedUser?.id === id ? null : state.selectedUser, + state.selectedUser?.id === id ? updatedUser : state.selectedUser, isLoading: false })); return response.data;