refactor: streamline user status handling by using backend status directly
This commit is contained in:
parent
23691ec50c
commit
c94b7a91e8
@ -98,15 +98,9 @@ export default function AdminUserManagementPage() {
|
||||
const companyName = u.company_name || ''
|
||||
const fullName = u.user_type === 'company' ? companyName : `${firstName} ${lastName}`
|
||||
|
||||
// Map backend status to frontend status
|
||||
// Backend status can be: 'pending', 'active', 'suspended', 'inactive', 'archived'
|
||||
// is_admin_verified: 1 = verified by admin, 0 = not verified
|
||||
const userStatus: UserStatus = u.status === 'archived' ? 'archived' :
|
||||
u.status === 'inactive' ? 'inactive' :
|
||||
u.status === 'suspended' ? 'suspended' :
|
||||
u.is_admin_verified === 1 ? 'active' :
|
||||
u.status === 'pending' ? 'pending' :
|
||||
'pending' // default fallback
|
||||
// Use backend status directly for filtering
|
||||
const allowedStatuses: UserStatus[] = ['pending','active','suspended','inactive','archived']
|
||||
const userStatus: UserStatus = (allowedStatuses.includes(u.status as UserStatus) ? u.status : 'pending') as UserStatus
|
||||
|
||||
return (
|
||||
(fType === 'all' || u.user_type === fType) &&
|
||||
@ -130,8 +124,8 @@ export default function AdminUserManagementPage() {
|
||||
admins: allUsers.filter(u => u.role === 'admin').length,
|
||||
personal: allUsers.filter(u => u.user_type === 'personal').length,
|
||||
company: allUsers.filter(u => u.user_type === 'company').length,
|
||||
active: allUsers.filter(u => u.is_admin_verified === 1).length,
|
||||
pending: allUsers.filter(u => u.is_admin_verified !== 1).length,
|
||||
active: allUsers.filter(u => u.status === 'active').length,
|
||||
pending: allUsers.filter(u => u.status === 'pending').length,
|
||||
}), [allUsers])
|
||||
|
||||
// Show loading during SSR/initial client render
|
||||
@ -183,12 +177,9 @@ export default function AdminUserManagementPage() {
|
||||
'First Name','Last Name','Company Name','Created At','Last Login At'
|
||||
]
|
||||
const rows = filtered.map(u => {
|
||||
// Map backend to friendly values
|
||||
const userStatus: UserStatus = u.status === 'archived' ? 'archived' :
|
||||
u.status === 'inactive' ? 'inactive' :
|
||||
u.status === 'suspended' ? 'suspended' :
|
||||
u.is_admin_verified === 1 ? 'active' :
|
||||
u.status === 'pending' ? 'pending' : 'pending'
|
||||
// Use backend status directly
|
||||
const allowedStatuses: UserStatus[] = ['active','pending','suspended','inactive','archived']
|
||||
const userStatus: UserStatus = (allowedStatuses.includes(u.status as UserStatus) ? u.status : 'pending') as UserStatus
|
||||
return [
|
||||
u.id,
|
||||
u.email,
|
||||
@ -436,13 +427,9 @@ export default function AdminUserManagementPage() {
|
||||
? (u.company_name?.[0] || 'C').toUpperCase()
|
||||
: `${u.first_name?.[0] || 'U'}${u.last_name?.[0] || 'U'}`.toUpperCase()
|
||||
|
||||
// Map backend status to frontend status for display
|
||||
const userStatus: UserStatus = u.status === 'archived' ? 'archived' :
|
||||
u.status === 'inactive' ? 'inactive' :
|
||||
u.status === 'suspended' ? 'suspended' :
|
||||
u.is_admin_verified === 1 ? 'active' :
|
||||
u.status === 'pending' ? 'pending' :
|
||||
'pending' // default fallback
|
||||
// Use backend status directly for display to avoid desync
|
||||
const allowedStatuses: UserStatus[] = ['active','pending','suspended','inactive','archived']
|
||||
const userStatus: UserStatus = (allowedStatuses.includes(u.status as UserStatus) ? u.status : 'pending') as UserStatus
|
||||
|
||||
const createdDate = new Date(u.created_at).toLocaleDateString()
|
||||
const lastLoginDate = u.last_login_at ? new Date(u.last_login_at).toLocaleDateString() : 'Never'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user