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