CHANGELOG.th
บันทึกการเปลี่ยนแปลง (Changelog)
[!NOTE] การเปลี่ยนแปลงที่สำคัญทั้งหมดในโปรเจกต์นี้จะถูกบันทึกไว้ในไฟล์นี้
- สำหรับเวอร์ชันภาษาอังกฤษ โปรดดู English Version
[3.6.3] - 2025-12-01
🐛 แก้ไข (Fixed)
- Admin Form State: แก้ไขปัญหาที่ฟอร์ม "เพิ่มรายการ" แสดงข้อมูลค้างจากรายการที่แก้ไขก่อนหน้า ตอนนี้ฟอร์มจะถูกรีเซ็ตเป็นค่าว่างอย่างถูกต้องเมื่อเปิดหน้าต่าง "เพิ่มรายการ"
[3.5.1] - 2025-11-26
🐛 แก้ไข (Fixed)
- Build Error: แก้ไขข้อผิดพลาด
ReferenceError: Link is not definedในหน้าเอกสารสำหรับนักพัฒนา (/dev)
[3.5.0] - 2025-11-26
เพิ่มเติม (Added)
- Documentation: เพิ่มสารบัญ (Table of Contents) ในหน้าเอกสารสำหรับนักพัฒนา (
/dev/[slug]) เพื่อการนำทางที่สะดวกขึ้น
ปรับปรุง (Changed)
- Dev Portal: นำตัวเลือกภาษาออกจากหน้าหลักของพอร์ทัลนักพัฒนา (
/dev) โดยแสดงเอกสารทั้งหมดรวมกัน - Documentation: ปรับปรุงไฟล์เอกสาร (
DEVELOPMENT.md,TECH.md,DEVELOPMENT.th.md) โดยลบอีโมจิออกจากหัวข้อและปรับโครงสร้างสารบัญให้ดูสะอาดตาและเป็นมืออาชีพมากขึ้น - Documentation: ปรับปรุงระบบสร้างสารบัญให้รองรับภาษาไทยและ ID ที่กำหนดเองได้อย่างถูกต้อง
[3.5.0] - 2025-11-26
✨ เพิ่มเติม (Added)
- Admin Features: เพิ่มฟังก์ชัน "แก้ไขรายการ" (Update Item)
- ผู้ดูแลระบบสามารถแก้ไขรายการที่มีอยู่ (ชื่อ, หมวดหมู่, วันที่, สถานที่, รายละเอียด, ข้อมูลติดต่อ, รูปภาพ) ได้โดยตรงจากแดชบอร์ด
- ใช้ฟอร์มเดียวกับ "เพิ่มรายการ" เพื่อประสบการณ์การใช้งานที่สม่ำเสมอ
- Database: เพิ่มคอลัมน์
contact_detailในตารางitemsเพื่อแยกสถานที่รับคืนออกจากรายละเอียดการติดต่อ - Developer: เพิ่มลิงก์ไปยัง GitHub Repository ในหน้า Developer Portal (
/dev)
🛠️ ปรับปรุง (Changed)
- UI/UX: แยกช่อง "การติดต่อ" ออกเป็น "สถานที่รับของคืน" และ "รายละเอียดการติดต่อ" ในฟอร์มเพิ่ม/แก้ไขรายการ เพื่อความชัดเจนยิ่งขึ้น
- UI/UX: ปรับปรุง
ItemModal(มุมมองสาธารณะ):- ซ่อน "รายละเอียดการติดต่อ" จากมุมมองสาธารณะ
- ทำให้ส่วน "วิธีในการรับคืน" สามารถย่อ/ขยายได้ (Collapsible)
- ปรับรูปแบบการแสดงผลข้อมูลการติดต่อทั้งหมด (สถานที่, ชื่อ, เบอร์โทร, เวลา) ให้ใช้
ItemDetailRowเพื่อความสวยงามและเป็นระเบียบ - เปลี่ยนค่าเริ่มต้นสำหรับข้อมูลที่ขาดหายไปเป็น "-"
- ลบข้อความ "โปรดติดต่อที่..." ออก
- UI/UX: ปรับปรุง
AdminItemModalให้มีดีไซน์เหมือนกับItemModal(สาธารณะ):- เพิ่มส่วน "วิธีในการรับคืน" แบบย่อ/ขยายได้
- ใช้
ItemDetailRowแสดงข้อมูลการติดต่อให้เป็นระเบียบ - รองรับการแสดงผลบนมือถือ
- UI/UX: ปรับปรุง
AddItemFormโดยเปลี่ยนช่อง "รายละเอียดการติดต่อ" เป็นTextareaขนาดใหญ่ขึ้น เพื่อให้กรอกข้อมูลได้สะดวก - Public UI: ซ่อนช่อง "รายละเอียด" (Description) จาก Item Modal ในหน้าสาธารณะ เพื่อปกป้องข้อมูลส่วนบุคคล (ยังคงมองเห็นได้ในหน้า Admin)แดชบอร์ดผู้ดูแลระบบ)
🐛 แก้ไข (Fixed)
- Code Quality: แก้ไขข้อผิดพลาด "Argument name clash" ใน
AddItemModal.jsxที่ทำให้เกิดคำเตือนขณะ Build - Bug Fixes: แก้ไขปัญหาตัวเลือกวันที่รีเซ็ตเป็นวันปัจจุบันเมื่อแก้ไขรายการ ตอนนี้แสดงวันที่เดิมจากฐานข้อมูลได้อย่างถูกต้อง
[3.3.0] - 2025-11-25
เพิ่มเติม (Added)
- UI/UX: ปรับปรุงประสบการณ์การดูรูปภาพ
- เพิ่มระบบคลิกเพื่อดูภาพขนาดเต็มสำหรับ "หลักฐานการรับคืน" ในแดชบอร์ดผู้ดูแลระบบ
- เพิ่มระบบคลิกเพื่อดูภาพขนาดเต็มสำหรับรูปภาพหัวเรื่องของรายการ ทั้งในมุมมองสาธารณะและผู้ดูแลระบบ
- Accessibility: เพิ่ม
DialogTitleในมอดูลรูปภาพเพื่อรองรับโปรแกรมอ่านหน้าจอ (Screen Readers) - Loading States: เพิ่มการแสดงสถานะการโหลด (Spinner) และปิดการแก้ไขข้อมูลชั่วคราวในมอดูล "ยืนยันการคืน" (
ClaimItemModal)
ปรับปรุง (Changed)
- Dev Portal: ตั้งค่าภาษาเริ่มต้นเป็นภาษาไทย (
th) และเพิ่มการแสดงเอกสาร API ในมุมมองภาษาไทย - Documentation: ปรับรูปแบบข้อความส่วนหัวใน
CHANGELOGและคู่มือDEVELOPMENTให้เป็นมาตรฐานเดียวกัน - Schema: เพิ่มนโยบาย
UPDATEและDELETEสำหรับถังข้อมูลclaim-evidenceเพื่อให้ผู้ดูแลระบบจัดการไฟล์ได้เต็มรูปแบบ
[3.2.0] - 2025-11-25
เพิ่มเติม (Added)
- Localization: แปลหน้าเข้าสู่ระบบ (
/login) เป็นภาษาไทย
ปรับปรุง (Changed)
- UX/Loading: ปรับปรุงการทำงานของปุ่ม "รีเฟรช" ในแดชบอร์ดผู้ดูแลระบบ ให้เป็นการโหลดข้อมูลเบื้องหลังพร้อมแสดงสถานะที่ตาราง แทนการโหลดหน้าใหม่ทั้งหมด
[3.1.0] - 2025-11-25
เพิ่มเติม (Added)
- Admin Tools: เพิ่มเครื่องมือสำหรับผู้ดูแลระบบ
- Purge: ฟังก์ชันล้างข้อมูลเก่า (ลบรายการที่ "พบแล้ว" และเก่ากว่า 90 วัน) เพื่อจัดการฐานข้อมูล
- Refresh: ปุ่มรีเฟรชข้อมูลในตารางโดยไม่ต้องโหลดหน้าใหม่
- UI: เพิ่มปุ่ม Refresh และ Purge ในส่วนหัวของตาราง Admin
[3.0.0] - 2025-11-25
เพิ่มเติม (Added)
- Claimer Info Log: ระบบบันทึกข้อมูลผู้รับคืนอย่างละเอียด
- เพิ่มฟิลด์ "ช่องทางติดต่อโซเชียลมีเดีย" และ "หลักฐานการรับคืน (รูปภาพ)" ในขั้นตอนการคืนของ
- แสดงข้อมูลผู้รับคืนพร้อมรูปภาพหลักฐานในรายละเอียดรายการที่คืนแล้ว
- Database: เพิ่มตาราง
claimsและ Storage Bucketclaim-evidenceสำหรับเก็บข้อมูลการรับคืน - API: อัปเดต API
itemsให้รองรับการบันทึกและดึงข้อมูลการรับคืน (Claims)
ปรับปรุง (Changed)
- Admin UI: ปรับปรุง
ClaimItemModalและClaimerInfoCardให้รองรับข้อมูลใหม่
[2.3.1] - 2025-11-25
เพิ่มเติม (Added)
- Admin Header: เมนู Dropdown แบบตอบสนองบนมือถือพร้อม Overlay เต็มหน้าจอเพื่อการใช้งานที่สะดวกขึ้นบนหน้าจอขนาดเล็ก
- Logout: เพิ่มหน้าจอโหลด (Loading Screen) ระหว่างออกจากระบบเพื่อตอบสนองผู้ใช้งานได้ดียิ่งขึ้น
ปรับปรุง (Changed)
- UI/UX: อัปเดตธีมสีหลักจาก เขียว/เขียวอมฟ้า (Teal) เป็น น้ำเงิน/คราม (Indigo) เพื่อความสวยงามและเป็นมืออาชีพมากขึ้น
- อัปเดตส่วนหัว Admin, ส่วนหัวสาธารณะ, ป้ายสถานะ, และตัวชี้วัดบนแดชบอร์ด
ปรับปรุงโครงสร้าง (Refactoring)
- Cleanup: ลบไฟล์ซ้ำซ้อน
ItemStatusBadge 2.jsx - Organization: ย้าย
ItemStatusBadge.jsxจากsrc/components/sharedไปยังsrc/components/itemsและลบโฟลเดอร์sharedที่ว่างเปล่า
แก้ไข (Fixed)
- Mobile Menu: แก้ไขปัญหาการซ้อนทับ (Stacking Context) และการล้น (Overflow) ที่ทำให้กดเมนูบนมือถือไม่ได้
- Logout: แก้ไขข้อผิดพลาด Runtime Error ("undefined is not an object") เมื่อออกจากระบบผ่านเมนูมือถือ
[2.3.0] - 2025-11-25
เพิ่มเติม (Added)
- Developer Portal: เพิ่มหน้า
/devสำหรับรวมเอกสารและเครื่องมือสำหรับนักพัฒนา - Sitemap Viewer: แปลงเครื่องมือดู Sitemap เป็น Next.js Page (
/dev/sitemap-viewer) - Documentation: เพิ่มเอกสาร
TECH.mdอธิบาย Tech Stack และ Architecture อย่างละเอียด - Analytics: ติดตั้ง
@vercel/analyticsเพื่อติดตามการใช้งาน - Navigation: เพิ่มลิงก์ "สำหรับนักพัฒนา" ใน Footer และ Admin Header
ปรับปรุง (Changed)
- Favicon: อัปเกรดจาก
icon.pngเป็นfavicon.icoมาตรฐาน - Docs: ปรับปรุง
README.mdและDEVELOPMENT.th.mdให้สะท้อนโครงสร้างโปรเจกต์ล่าสุด - Table of Contents: แก้ไขลิงก์ในสารบัญของเอกสารต่างๆ ให้ทำงานถูกต้อง
ลบ (Removed)
- Legacy Files: ลบไฟล์
docs/sitemap-viewer.htmlและsrc/app/icon.pngที่ไม่ได้ใช้งานแล้ว
[2.1.1] - 2025-11-24
เปลี่ยนแปลง (Changed)
- Image Optimization: ปรับปรุงตัวแปลงรูปภาพเพื่อให้แน่ใจว่ามีการแปลงเป็น WebP อย่างมีประสิทธิภาพก่อนอัปโหลด
แก้ไข (Fixed)
- Double Upload: แก้ไขข้อผิดพลาดที่รูปภาพถูกอัปโหลดสองครั้ง (ต้นฉบับและ WebP) ตอนนี้จะเก็บเฉพาะเวอร์ชัน WebP ที่ปรับปรุงแล้วเท่านั้น
- Dev Server Locks: แก้ไขปัญหา "Unable to acquire lock" ที่เกิดขึ้นซ้ำๆ ซึ่งป้องกันไม่ให้เซิร์ฟเวอร์เริ่มทำงาน
- Accessibility: เพิ่มส่วนประกอบ
DialogDescriptionที่ขาดหายไปในAddItemModal,ItemModal,AdminItemModal, และClaimItemModalเพื่อแก้ไขคำเตือนการเข้าถึง (Accessibility) - Source Maps: แก้ไขคำเตือน source map ที่เกี่ยวข้องกับ Preline UI ในคอนโซลการพัฒนา
[2.1.0] - 2025-11-23
เพิ่มเติม (Added)
- Deferred Image Upload: รูปภาพจะแสดงตัวอย่างในเครื่องโดยใช้ Object URLs และจะถูกอัปโหลดไปยัง Supabase เมื่อผู้ใช้ยืนยันการเพิ่มเท่านั้น
- Instant Preview: แสดงตัวอย่างทันทีเมื่อเลือกไฟล์รูปภาพในขั้นตอนการเพิ่มรายการ
- Dev Script: เพิ่มคำสั่ง
npm run dev:cleanเพื่อปิด zombie processes และลบไฟล์ lock ของ Next.js ที่ค้างอยู่โดยอัตโนมัติ - Loading States: เพิ่มการแสดงสถานะการโหลด (spinners) ในระหว่างขั้นตอนการอัปโหลดและเผยแพร่
เปลี่ยนแปลง (Changed)
- Admin Dashboard: ปรับปรุงการออกแบบสำหรับอุปกรณ์มือถือ โดยเปลี่ยนเป็นมุมมองแบบการ์ดเพื่อการใช้งานที่ดีขึ้น
- Documentation: อัปเดต
README.mdและdocs/DEVELOPMENT.th.mdเพื่อสะท้อนถึงขั้นตอนการจัดการรูปภาพใหม่และสคริปต์สำหรับการพัฒนา
[2.0.0] - 2025-11-22
เพิ่มเติม (Added)
- Project Restructure: ปรับโครงสร้างโค้ดครั้งใหญ่เพื่อรองรับการขยายตัวในอนาคต
- Documentation: อัปเดตคู่มือการพัฒนาและเอกสาร API อย่างครอบคลุม
[1.0.0] - 2025-11-20
เพิ่มเติม (Added)
- Public Gallery: หน้าแรกสาธารณะแสดงตารางรายการของหายพร้อมระบบค้นหาและกรอง
- Admin Dashboard: เส้นทางที่ได้รับการป้องกันสำหรับผู้ดูแลระบบเพื่อจัดการสินค้าคงคลัง (เพิ่ม, แก้ไข, ลบ, คืน)
- Authentication: ระบบล็อกอินที่ปลอดภัยโดยใช้ Supabase Auth
- Item Management: การจัดการรายการของหายแบบ CRUD เต็มรูปแบบ
- Image Upload: การเชื่อมต่อกับ Supabase Storage สำหรับรูปภาพสินค้า
- Responsive UI: อินเทอร์เฟซที่ทันสมัยและตอบสนองได้ดี สร้างด้วย Tailwind CSS และ Shadcn UI
- Supabase Integration: คลาส
DataManagerสำหรับจัดการการเชื่อมต่อฐานข้อมูล