From 17a7866cd2706a829fdded586ffc99869a063bab Mon Sep 17 00:00:00 2001 From: tuyenio Date: Tue, 23 Jun 2026 13:46:42 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20chu=E1=BA=A9n=20h=C3=B3a=20t=C3=AAn=20?= =?UTF-8?q?=E1=BA=A3nh=20tour=20v=E1=BB=81=20ASCII=20(chua-thai-lac/01..26?= =?UTF-8?q?.jpg)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tên thư mục/file Unicode tiếng Việt bị lệch chuẩn hóa (thư mục NFC, file NFD) khiến URL ảnh 404 khi phục vụ tĩnh. Đổi sang đường dẫn ASCII ổn định, tránh lỗi mã hóa khi triển khai trên mọi máy chủ/CDN. Cập nhật content.ts và cấu hình tour theo số thứ tự cảnh; dọn scaffold svg mặc định. Co-Authored-By: Claude Opus 4.8 (1M context) --- public/file.svg | 1 - public/globe.svg | 1 - .../01.jpg} | Bin .../Cổng Hữu.jpg => chua-thai-lac/02.jpg} | Bin .../Cổng Bên Trái.jpg => chua-thai-lac/03.jpg} | Bin .../04.jpg} | Bin .../Đường Hữu.jpg => chua-thai-lac/05.jpg} | Bin .../Đường Tả Qua Vòm.jpg => chua-thai-lac/06.jpg} | Bin .../Duong Tả Vòm.jpg => chua-thai-lac/07.jpg} | Bin .../Chính Sảnh.jpg => chua-thai-lac/08.jpg} | Bin .../Chính.jpg => chua-thai-lac/09.jpg} | Bin .../Giuawx.jpg => chua-thai-lac/10.jpg} | Bin .../Chính Điện 3.jpg => chua-thai-lac/11.jpg} | Bin .../4.jpg => chua-thai-lac/12.jpg} | Bin .../Chùa 1 Tả.jpg => chua-thai-lac/13.jpg} | Bin .../Chùa 1 Giữa.jpg => chua-thai-lac/14.jpg} | Bin .../Chùa 1 Hữu.jpg => chua-thai-lac/15.jpg} | Bin .../16.jpg} | Bin .../Chùa 1 Trong Tả.jpg => chua-thai-lac/17.jpg} | Bin .../Hữu 2.jpg => chua-thai-lac/18.jpg} | Bin .../Hữu 3.jpg => chua-thai-lac/19.jpg} | Bin .../Tượng Quan Âm.jpg => chua-thai-lac/20.jpg} | Bin .../La Hán Tả.jpg => chua-thai-lac/21.jpg} | Bin .../Nhà Phật Hữu.jpg => chua-thai-lac/22.jpg} | Bin .../Ao Cá Koi.jpg => chua-thai-lac/23.jpg} | Bin .../Gốc Ngoã Tả.jpg => chua-thai-lac/24.jpg} | Bin .../Gốc Ngoã Hữu.jpg => chua-thai-lac/25.jpg} | Bin .../Sau Chùa.jpg => chua-thai-lac/26.jpg} | Bin public/next.svg | 1 - public/vercel.svg | 1 - public/window.svg | 1 - src/app/content.ts | 14 ++-- src/app/tours/chua-thai-lac.ts | 69 +++++++++--------- 33 files changed, 42 insertions(+), 46 deletions(-) delete mode 100644 public/file.svg delete mode 100644 public/globe.svg rename public/images/{Chùa Thái Lạc/Chính Diện Cổng Chùa.jpg => chua-thai-lac/01.jpg} (100%) rename public/images/{Chùa Thái Lạc/Cổng Hữu.jpg => chua-thai-lac/02.jpg} (100%) rename public/images/{Chùa Thái Lạc/Cổng Bên Trái.jpg => chua-thai-lac/03.jpg} (100%) rename public/images/{Chùa Thái Lạc/Lối Vào Been Trái.jpg => chua-thai-lac/04.jpg} (100%) rename public/images/{Chùa Thái Lạc/Đường Hữu.jpg => chua-thai-lac/05.jpg} (100%) rename public/images/{Chùa Thái Lạc/Đường Tả Qua Vòm.jpg => chua-thai-lac/06.jpg} (100%) rename public/images/{Chùa Thái Lạc/Duong Tả Vòm.jpg => chua-thai-lac/07.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chính Sảnh.jpg => chua-thai-lac/08.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chính.jpg => chua-thai-lac/09.jpg} (100%) rename public/images/{Chùa Thái Lạc/Giuawx.jpg => chua-thai-lac/10.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chính Điện 3.jpg => chua-thai-lac/11.jpg} (100%) rename public/images/{Chùa Thái Lạc/4.jpg => chua-thai-lac/12.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chùa 1 Tả.jpg => chua-thai-lac/13.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chùa 1 Giữa.jpg => chua-thai-lac/14.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chùa 1 Hữu.jpg => chua-thai-lac/15.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chùa 1 Trong - Giữa.jpg => chua-thai-lac/16.jpg} (100%) rename public/images/{Chùa Thái Lạc/Chùa 1 Trong Tả.jpg => chua-thai-lac/17.jpg} (100%) rename public/images/{Chùa Thái Lạc/Hữu 2.jpg => chua-thai-lac/18.jpg} (100%) rename public/images/{Chùa Thái Lạc/Hữu 3.jpg => chua-thai-lac/19.jpg} (100%) rename public/images/{Chùa Thái Lạc/Tượng Quan Âm.jpg => chua-thai-lac/20.jpg} (100%) rename public/images/{Chùa Thái Lạc/La Hán Tả.jpg => chua-thai-lac/21.jpg} (100%) rename public/images/{Chùa Thái Lạc/Nhà Phật Hữu.jpg => chua-thai-lac/22.jpg} (100%) rename public/images/{Chùa Thái Lạc/Ao Cá Koi.jpg => chua-thai-lac/23.jpg} (100%) rename public/images/{Chùa Thái Lạc/Gốc Ngoã Tả.jpg => chua-thai-lac/24.jpg} (100%) rename public/images/{Chùa Thái Lạc/Gốc Ngoã Hữu.jpg => chua-thai-lac/25.jpg} (100%) rename public/images/{Chùa Thái Lạc/Sau Chùa.jpg => chua-thai-lac/26.jpg} (100%) delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg delete mode 100644 public/window.svg diff --git a/public/file.svg b/public/file.svg deleted file mode 100644 index 004145c..0000000 --- a/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/globe.svg b/public/globe.svg deleted file mode 100644 index 567f17b..0000000 --- a/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/Chùa Thái Lạc/Chính Diện Cổng Chùa.jpg b/public/images/chua-thai-lac/01.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chính Diện Cổng Chùa.jpg rename to public/images/chua-thai-lac/01.jpg diff --git a/public/images/Chùa Thái Lạc/Cổng Hữu.jpg b/public/images/chua-thai-lac/02.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Cổng Hữu.jpg rename to public/images/chua-thai-lac/02.jpg diff --git a/public/images/Chùa Thái Lạc/Cổng Bên Trái.jpg b/public/images/chua-thai-lac/03.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Cổng Bên Trái.jpg rename to public/images/chua-thai-lac/03.jpg diff --git a/public/images/Chùa Thái Lạc/Lối Vào Been Trái.jpg b/public/images/chua-thai-lac/04.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Lối Vào Been Trái.jpg rename to public/images/chua-thai-lac/04.jpg diff --git a/public/images/Chùa Thái Lạc/Đường Hữu.jpg b/public/images/chua-thai-lac/05.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Đường Hữu.jpg rename to public/images/chua-thai-lac/05.jpg diff --git a/public/images/Chùa Thái Lạc/Đường Tả Qua Vòm.jpg b/public/images/chua-thai-lac/06.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Đường Tả Qua Vòm.jpg rename to public/images/chua-thai-lac/06.jpg diff --git a/public/images/Chùa Thái Lạc/Duong Tả Vòm.jpg b/public/images/chua-thai-lac/07.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Duong Tả Vòm.jpg rename to public/images/chua-thai-lac/07.jpg diff --git a/public/images/Chùa Thái Lạc/Chính Sảnh.jpg b/public/images/chua-thai-lac/08.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chính Sảnh.jpg rename to public/images/chua-thai-lac/08.jpg diff --git a/public/images/Chùa Thái Lạc/Chính.jpg b/public/images/chua-thai-lac/09.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chính.jpg rename to public/images/chua-thai-lac/09.jpg diff --git a/public/images/Chùa Thái Lạc/Giuawx.jpg b/public/images/chua-thai-lac/10.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Giuawx.jpg rename to public/images/chua-thai-lac/10.jpg diff --git a/public/images/Chùa Thái Lạc/Chính Điện 3.jpg b/public/images/chua-thai-lac/11.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chính Điện 3.jpg rename to public/images/chua-thai-lac/11.jpg diff --git a/public/images/Chùa Thái Lạc/4.jpg b/public/images/chua-thai-lac/12.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/4.jpg rename to public/images/chua-thai-lac/12.jpg diff --git a/public/images/Chùa Thái Lạc/Chùa 1 Tả.jpg b/public/images/chua-thai-lac/13.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chùa 1 Tả.jpg rename to public/images/chua-thai-lac/13.jpg diff --git a/public/images/Chùa Thái Lạc/Chùa 1 Giữa.jpg b/public/images/chua-thai-lac/14.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chùa 1 Giữa.jpg rename to public/images/chua-thai-lac/14.jpg diff --git a/public/images/Chùa Thái Lạc/Chùa 1 Hữu.jpg b/public/images/chua-thai-lac/15.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chùa 1 Hữu.jpg rename to public/images/chua-thai-lac/15.jpg diff --git a/public/images/Chùa Thái Lạc/Chùa 1 Trong - Giữa.jpg b/public/images/chua-thai-lac/16.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chùa 1 Trong - Giữa.jpg rename to public/images/chua-thai-lac/16.jpg diff --git a/public/images/Chùa Thái Lạc/Chùa 1 Trong Tả.jpg b/public/images/chua-thai-lac/17.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Chùa 1 Trong Tả.jpg rename to public/images/chua-thai-lac/17.jpg diff --git a/public/images/Chùa Thái Lạc/Hữu 2.jpg b/public/images/chua-thai-lac/18.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Hữu 2.jpg rename to public/images/chua-thai-lac/18.jpg diff --git a/public/images/Chùa Thái Lạc/Hữu 3.jpg b/public/images/chua-thai-lac/19.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Hữu 3.jpg rename to public/images/chua-thai-lac/19.jpg diff --git a/public/images/Chùa Thái Lạc/Tượng Quan Âm.jpg b/public/images/chua-thai-lac/20.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Tượng Quan Âm.jpg rename to public/images/chua-thai-lac/20.jpg diff --git a/public/images/Chùa Thái Lạc/La Hán Tả.jpg b/public/images/chua-thai-lac/21.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/La Hán Tả.jpg rename to public/images/chua-thai-lac/21.jpg diff --git a/public/images/Chùa Thái Lạc/Nhà Phật Hữu.jpg b/public/images/chua-thai-lac/22.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Nhà Phật Hữu.jpg rename to public/images/chua-thai-lac/22.jpg diff --git a/public/images/Chùa Thái Lạc/Ao Cá Koi.jpg b/public/images/chua-thai-lac/23.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Ao Cá Koi.jpg rename to public/images/chua-thai-lac/23.jpg diff --git a/public/images/Chùa Thái Lạc/Gốc Ngoã Tả.jpg b/public/images/chua-thai-lac/24.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Gốc Ngoã Tả.jpg rename to public/images/chua-thai-lac/24.jpg diff --git a/public/images/Chùa Thái Lạc/Gốc Ngoã Hữu.jpg b/public/images/chua-thai-lac/25.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Gốc Ngoã Hữu.jpg rename to public/images/chua-thai-lac/25.jpg diff --git a/public/images/Chùa Thái Lạc/Sau Chùa.jpg b/public/images/chua-thai-lac/26.jpg similarity index 100% rename from public/images/Chùa Thái Lạc/Sau Chùa.jpg rename to public/images/chua-thai-lac/26.jpg diff --git a/public/next.svg b/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index 7705396..0000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/window.svg b/public/window.svg deleted file mode 100644 index b2b2a44..0000000 --- a/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/app/content.ts b/src/app/content.ts index 9f00bde..8426c88 100644 --- a/src/app/content.ts +++ b/src/app/content.ts @@ -1,4 +1,4 @@ -const imgBase = "/images/Đình Thái Lạc"; // thư mục chứa 26 ảnh Chùa Thái Lạc +const imgBase = "/images/chua-thai-lac"; // 26 ảnh panorama Chùa Thái Lạc, đặt tên 01..26.jpg export const img = (file: string) => encodeURI(`${imgBase}/${file}`); export const commune = { @@ -13,10 +13,10 @@ export const activeTour = { title: "Chùa Thái Lạc (Pháp Vân tự)", subtitle: "Di tích quốc gia — chạm khắc gỗ thời Trần", href: "/tour/chua-thai-lac", - heroImage: img("Chính Diện Cổng Chùa.jpg"), - coverImage: img("Chính Sảnh.jpg"), - gateImage: img("Chính Diện Cổng Chùa.jpg"), - shrineImage: img("Chính Điện 3.jpg"), + heroImage: img("01.jpg"), // Chính diện cổng chùa + coverImage: img("08.jpg"), // Chính sảnh + gateImage: img("01.jpg"), // Chính diện cổng chùa + shrineImage: img("11.jpg"), // Chính điện sceneCount: "26", duration: "15-20 phút", }; @@ -60,7 +60,7 @@ function stub(id: string, name: string, type: string, level: HeritageLevel, desc level, status: "Đang bổ sung tư liệu", shortDescription: desc, - image: img("Chính Sảnh.jpg"), // ảnh tạm dùng chung cho các di tích chưa có tư liệu + image: img("08.jpg"), // ảnh tạm (Chính sảnh) dùng chung cho các di tích chưa có tư liệu detailUrl: `/di-tich/${id}`, isAvailable: false, location: "Xã Như Quỳnh, tỉnh Hưng Yên", @@ -81,7 +81,7 @@ export const heritageSites: HeritageSite[] = [ "Giá trị đặc biệt của di tích nằm ở hệ thống ván chạm khắc gỗ có niên đại thời Trần (thế kỷ 14), khắc họa các nhạc công, vũ nữ, hình tượng Phật giáo với kỹ thuật điêu luyện — nguồn tư liệu quý cho nghiên cứu mỹ thuật cổ Việt Nam.", "Không gian chùa gồm cổng, sân, tiền đường, thượng điện cùng các ban thờ và cảnh quan vườn, ao, được số hóa đầy đủ trong tour VR360.", ], - image: img("Chính Diện Cổng Chùa.jpg"), + image: img("01.jpg"), // Chính diện cổng chùa vrUrl: "/tour/chua-thai-lac", detailUrl: "/di-tich/chua-thai-lac", isAvailable: true, diff --git a/src/app/tours/chua-thai-lac.ts b/src/app/tours/chua-thai-lac.ts index 1c326a8..792ea7b 100644 --- a/src/app/tours/chua-thai-lac.ts +++ b/src/app/tours/chua-thai-lac.ts @@ -1,26 +1,29 @@ // Cấu hình tour VR360 Chùa Thái Lạc (Pháp Vân tự) — Xã Như Quỳnh, Hưng Yên. // File chỉ chứa DỮ LIỆU (type-only import từ engine để tránh circular import runtime). // Engine `VirtualTour.tsx` import `chuaThaiLacTour` rồi bọc qua createTourConfig(). +// +// Ảnh panorama đặt tại public/images/chua-thai-lac/01.jpg … 26.jpg +// (đặt tên ASCII theo thứ tự cảnh để tránh lỗi mã hóa Unicode/đường dẫn khi triển khai). import type { TourConfig, TourScene, InfoMarker } from "@/app/components/VirtualTour"; -const base = "/images/Đình Thái Lạc"; -const p = (file: string) => encodeURI(`${base}/${file}`); +const base = "/images/chua-thai-lac"; +// Ảnh theo số thứ tự cảnh: scene-1 → 01.jpg, scene-2 → 02.jpg, … +const imageFor = (index: number) => `${base}/${String(index + 1).padStart(2, "0")}.jpg`; type SceneSeed = { title: string; location: string; - file: string; initialYaw?: number; infoMarkers?: InfoMarker[]; }; // Tuyến tham quan: cổng → đường/vòm → tiền đường & chính điện → khu thờ → ban tượng → cảnh quan. -// yaw/pitch của hotspot để mặc định (tiến: 0, lùi: 180); tinh chỉnh trực quan ở bước chạy dev. +// Thứ tự mảng = thứ tự ảnh (01..26). yaw/pitch hotspot để mặc định (tiến: 0, lùi: 180); +// tinh chỉnh trực quan khi chạy dev. const seeds: SceneSeed[] = [ { title: "Chính diện cổng chùa", location: "Khu cổng", - file: "Chính Diện Cổng Chùa.jpg", infoMarkers: [ { id: "gioi-thieu", @@ -36,19 +39,18 @@ const seeds: SceneSeed[] = [ }, ], }, - { title: "Cổng bên phải", location: "Khu cổng", file: "Cổng Hữu.jpg" }, - { title: "Cổng bên trái", location: "Khu cổng", file: "Cổng Bên Trái.jpg" }, - { title: "Lối vào bên trái", location: "Khu cổng", file: "Lối Vào Been Trái.jpg" }, - { title: "Đường bên phải", location: "Đường vào", file: "Đường Hữu.jpg" }, - { title: "Đường bên trái qua vòm", location: "Đường vào", file: "Đường Tả Qua Vòm.jpg" }, - { title: "Đường tả qua vòm", location: "Đường vào", file: "Duong Tả Vòm.jpg" }, - { title: "Chính sảnh", location: "Tiền đường & Chính điện", file: "Chính Sảnh.jpg" }, - { title: "Gian giữa", location: "Tiền đường & Chính điện", file: "Chính.jpg" }, - { title: "Trung tâm chính điện", location: "Tiền đường & Chính điện", file: "Giuawx.jpg" }, + { title: "Cổng bên phải", location: "Khu cổng" }, + { title: "Cổng bên trái", location: "Khu cổng" }, + { title: "Lối vào bên trái", location: "Khu cổng" }, + { title: "Đường bên phải", location: "Đường vào" }, + { title: "Đường bên trái qua vòm", location: "Đường vào" }, + { title: "Đường tả qua vòm", location: "Đường vào" }, + { title: "Chính sảnh", location: "Tiền đường & Chính điện" }, + { title: "Gian giữa", location: "Tiền đường & Chính điện" }, + { title: "Trung tâm chính điện", location: "Tiền đường & Chính điện" }, { title: "Chính điện", location: "Tiền đường & Chính điện", - file: "Chính Điện 3.jpg", infoMarkers: [ { id: "cham-khac-go", @@ -64,18 +66,17 @@ const seeds: SceneSeed[] = [ }, ], }, - { title: "Gian trong chính điện", location: "Tiền đường & Chính điện", file: "4.jpg" }, - { title: "Ban thờ bên trái", location: "Khu thờ trong chùa", file: "Chùa 1 Tả.jpg" }, - { title: "Ban thờ chính giữa", location: "Khu thờ trong chùa", file: "Chùa 1 Giữa.jpg" }, - { title: "Ban thờ bên phải", location: "Khu thờ trong chùa", file: "Chùa 1 Hữu.jpg" }, - { title: "Gian trong - giữa", location: "Khu thờ trong chùa", file: "Chùa 1 Trong - Giữa.jpg" }, - { title: "Gian trong bên trái", location: "Khu thờ trong chùa", file: "Chùa 1 Trong Tả.jpg" }, - { title: "Hành lang bên phải", location: "Khu thờ trong chùa", file: "Hữu 2.jpg" }, - { title: "Hành lang bên phải (tiếp)", location: "Khu thờ trong chùa", file: "Hữu 3.jpg" }, + { title: "Gian trong chính điện", location: "Tiền đường & Chính điện" }, + { title: "Ban thờ bên trái", location: "Khu thờ trong chùa" }, + { title: "Ban thờ chính giữa", location: "Khu thờ trong chùa" }, + { title: "Ban thờ bên phải", location: "Khu thờ trong chùa" }, + { title: "Gian trong - giữa", location: "Khu thờ trong chùa" }, + { title: "Gian trong bên trái", location: "Khu thờ trong chùa" }, + { title: "Hành lang bên phải", location: "Khu thờ trong chùa" }, + { title: "Hành lang bên phải (tiếp)", location: "Khu thờ trong chùa" }, { title: "Tượng Quan Âm", location: "Ban thờ tượng", - file: "Tượng Quan Âm.jpg", infoMarkers: [ { id: "dai-quan-am", @@ -90,12 +91,12 @@ const seeds: SceneSeed[] = [ }, ], }, - { title: "Tượng La Hán bên trái", location: "Ban thờ tượng", file: "La Hán Tả.jpg" }, - { title: "Nhà thờ Phật bên phải", location: "Ban thờ tượng", file: "Nhà Phật Hữu.jpg" }, - { title: "Ao cá Koi", location: "Cảnh quan", file: "Ao Cá Koi.jpg" }, - { title: "Gốc ngõa bên trái", location: "Cảnh quan", file: "Gốc Ngoã Tả.jpg" }, - { title: "Gốc ngõa bên phải", location: "Cảnh quan", file: "Gốc Ngoã Hữu.jpg" }, - { title: "Phía sau chùa", location: "Cảnh quan", file: "Sau Chùa.jpg" }, + { title: "Tượng La Hán bên trái", location: "Ban thờ tượng" }, + { title: "Nhà thờ Phật bên phải", location: "Ban thờ tượng" }, + { title: "Ao cá Koi", location: "Cảnh quan" }, + { title: "Gốc ngõa bên trái", location: "Cảnh quan" }, + { title: "Gốc ngõa bên phải", location: "Cảnh quan" }, + { title: "Phía sau chùa", location: "Cảnh quan" }, ]; const sceneId = (index: number) => `scene-${index + 1}`; @@ -131,7 +132,7 @@ const scenes: TourScene[] = seeds.map((seed, index) => { order: String(index + 1).padStart(2, "0"), title: seed.title, location: seed.location, - image: p(seed.file), + image: imageFor(index), initialYaw: seed.initialYaw ?? 0, mapPosition, hotspots, @@ -151,10 +152,10 @@ export const chuaThaiLacTour: Omit = welcomeAccent: "Pháp Vân tự", welcomeSubtitle: "Tham quan 360° ngôi chùa cổ thờ Pháp Vân, nổi tiếng với mảng chạm khắc gỗ thời Trần.", - welcomeBackgroundImage: p("Chính Sảnh.jpg"), + welcomeBackgroundImage: imageFor(7), // 08.jpg — Chính sảnh welcomeCards: [ - { image: p("Chính Diện Cổng Chùa.jpg"), label: "Cổng chùa", rotate: "-rotate-6", sceneId: "scene-1" }, - { image: p("Tượng Quan Âm.jpg"), label: "Đài Quan Âm", rotate: "rotate-5", sceneId: "scene-20" }, + { image: imageFor(0), label: "Cổng chùa", rotate: "-rotate-6", sceneId: "scene-1" }, + { image: imageFor(19), label: "Đài Quan Âm", rotate: "rotate-5", sceneId: "scene-20" }, ], backgroundAudio: "", // chưa có nhạc nền; engine bỏ qua chuỗi rỗng (không render thẻ audio) practicalInfo: {