@@ -17,29 +17,10 @@ export const UserTableRow = ({ user, onClick }: { user: User, onClick: () => voi
|
{user.name}
|
-
- {user.email}
+ |
+ {user.phone}
|
-
-
- {
- {
- chula_student: 'นิสิตปัจจุบัน',
- alumni: 'ศิษย์เก่า',
- general_student: 'บุคคลทั่วไป',
- }[user.status]
- }
-
- |
-
- {user.faculty}
- |
-
- {user.sizeJersey}
- |
-
+ |
{dayjs(user.lastEntered).isValid()
? dayjs(user.lastEntered).format('DD/MM HH:mm')
: 'ยังไม่เข้างาน'}
diff --git a/src/app/(refine)/refine/users/[id]/_components/userDetails.tsx b/src/app/(refine)/refine/users/[id]/_components/userDetails.tsx
index 5e7c53d..056c7c3 100644
--- a/src/app/(refine)/refine/users/[id]/_components/userDetails.tsx
+++ b/src/app/(refine)/refine/users/[id]/_components/userDetails.tsx
@@ -1,8 +1,6 @@
-/* eslint-disable @next/next/no-img-element */
'use client';
import { useOne } from '@refinedev/core';
import { User, FieldEntry } from '../../../libs/interface';
-import { useEffect, useState } from 'react';
import { useRouter } from 'next/navigation';
const formatThaiDate = (dateString: string) => {
@@ -17,40 +15,22 @@ const formatThaiDate = (dateString: string) => {
export default function UserDetails({ id }: { id: string }) {
const router = useRouter();
- const [isImageOpen, setIsImageOpen] = useState(false);
- const [image, setImage] = useState(null);
- const [imageError, setImageError] = useState('');
const { data, isError, isLoading } = useOne({
resource: 'users',
id: id,
});
- const { data: imageData, isError: isImageError } = useOne({
- resource: 'users/image',
- id: id,
- });
-
const user = data?.data;
- useEffect(() => {
- if (isImageError) {
- setImageError('คุณไม่มีสิทธิ์เข้าถึงภาพนี้');
- setImage(null);
- } else if (imageData?.data?.url) {
- setImage(imageData.data.url);
- setImageError('');
- }
- }, [imageData, isImageError]);
-
const createField = (label: string, field: keyof User): FieldEntry => ({
label,
field,
});
const renderSection = (title: string, fields: FieldEntry[]) => (
-
- {title}
-
+
+ {title}
+
{fields.map(({ label, field }) => {
const value = user?.[field];
let displayValue = value || 'N/A';
@@ -59,16 +39,16 @@ export default function UserDetails({ id }: { id: string }) {
displayValue = formatThaiDate(value as string);
} else if (field === 'graduatedYear') {
displayValue = (parseInt(value as string) + 543).toString();
- } else if (field === 'status') {
- displayValue = value as string;
} else if (field === 'isAcrophobic') {
displayValue = value ? 'ใช่' : 'ไม่';
}
return (
-
- {label}
- {displayValue}
+
+ {label}
+
+ {displayValue}
+
);
})}
@@ -79,23 +59,23 @@ export default function UserDetails({ id }: { id: string }) {
if (isLoading) return กำลังโหลด... ;
if (isError)
return (
-
+
เกิดข้อผิดพลาดในการโหลดข้อมูลผู้ใช้
);
if (!user) return ไม่พบผู้ใช้ ;
return (
-
+
{/* Header */}
-
+
- {/* Image Preview */}
-
- setIsImageOpen(true)}
- className="relative aspect-[4/3] w-full overflow-hidden rounded-2xl bg-gray-100 shadow-lg"
- >
- {imageError ? (
-
- ) : (
- image && (
- 
- )
- )}
-
-
-
{/* Profile Information */}
-
-
- {user.name}
-
-
- {user.role}
-
- {user.uid}
+
+
+
+ {user.name}
+
+
+ {user.role}
+
+
+ {user.uid}
+
+
-
+
{renderSection('ข้อมูลส่วนตัว', [
createField('อีเมล', 'email'),
createField('เบอร์โทรศัพท์', 'phone'),
@@ -165,69 +113,21 @@ export default function UserDetails({ id }: { id: string }) {
createField('วันที่ลงทะเบียน', 'registeredAt'),
])}
- {renderSection('ข้อมูลการศึกษา', [
+ {/* {renderSection('ข้อมูลการศึกษา', [
createField('มหาวิทยาลัย', 'university'),
createField('คณะ', 'faculty'),
createField('ระดับการศึกษา', 'education'),
createField('ปีที่จบการศึกษา', 'graduatedYear'),
- ])}
+ ])} */}
- {renderSection('ข้อมูลเพิ่มเติม', [
- createField('ขนาดเสื้อ', 'sizeJersey'),
+ {renderSection('ข้อมูลสุขภาพ', [
createField('ข้อจำกัดด้านอาหาร', 'foodLimitation'),
- createField('กลัวความสูงไหม', 'isAcrophobic'),
- ...(user.chronicDisease
- ? [createField('โรคประจำตัว', 'chronicDisease')]
- : []),
- ...(user.drugAllergy
- ? [createField('อาการแพ้ยา', 'drugAllergy')]
- : []),
+ createField('กลัวความสูง', 'isAcrophobic'),
+ createField('โรคประจำตัว', 'chronicDisease'),
+ createField('อาการแพ้ยา', 'drugAllergy'),
])}
-
- {/* Image Modal */}
- {isImageOpen && (
- setIsImageOpen(false)}
- >
-
-
-
- {image ? (
- 
- ) : (
-
- {imageError}
-
- )}
-
-
-
- )}
);
}
\ No newline at end of file
|