feat: thông tin liên hệ chính thức + lớp nghệ thuật (grain, marquee), bỏ em-dash

- Thông tin liên hệ thật: Thôn Đình Dù, Xã Như Quỳnh, tỉnh Hưng Yên · ĐT 02213 985 074
  · cổng nhuquynh.hungyen.gov.vn (1 nguồn dữ liệu `contact`, dùng ở footer + liên hệ + bản đồ)
- Thêm lớp nhiễu hạt phim cố định (chiều sâu cao cấp) + dải tên di tích chạy ngang (1 dải/trang)
- Thay toàn bộ em-dash trong nội dung hiển thị bằng dấu câu chuẩn

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
tuyenio
2026-06-23 15:56:15 +07:00
parent 25772c9c25
commit dd6dadaa55
11 changed files with 151 additions and 42 deletions
+31 -14
View File
@@ -1,8 +1,9 @@
import type { Metadata } from "next";
import { Clock, ImagePlus, Landmark, Mail, MapPin, MessageSquareText, Phone, Send } from "lucide-react";
import { Clock, Globe2, ImagePlus, Landmark, MapPin, MessageSquareText, Phone, Send } from "lucide-react";
import { BackToTopButton } from "@/app/components/landing/BackToTopButton";
import { SiteFooter } from "@/app/components/landing/SiteFooter";
import { SiteHeader } from "@/app/components/landing/SiteHeader";
import { contact } from "@/app/content";
export const metadata: Metadata = {
title: "Liên hệ | VR360 Như Quỳnh",
@@ -10,10 +11,10 @@ export const metadata: Metadata = {
};
const contacts = [
{ icon: MapPin, label: "Địa chỉ", value: "Xã Như Quỳnh, tỉnh Hưng Yên" },
{ icon: Phone, label: "Điện thoại", value: "Đang cập nhật" },
{ icon: Mail, label: "Email", value: "Đang cập nhật" },
{ icon: Clock, label: "Thời gian tiếp nhận", value: "Trong giờ hành chính các ngày làm việc" },
{ icon: MapPin, label: "Địa chỉ", value: contact.address, href: undefined, external: false },
{ icon: Phone, label: "Điện thoại", value: contact.phone, href: contact.phoneHref, external: false },
{ icon: Globe2, label: "Cổng thông tin", value: contact.websiteLabel, href: contact.website, external: true },
{ icon: Clock, label: "Thời gian tiếp nhận", value: "Trong giờ hành chính các ngày làm việc", href: undefined, external: false },
];
const steps = [
@@ -77,22 +78,38 @@ export default function ContactPage() {
<div className="mt-6 grid gap-3">
{contacts.map((c) => {
const Icon = c.icon;
return (
<div key={c.label} className="public-panel flex items-center gap-4 rounded-[14px] p-5">
const inner = (
<>
<span className="grid h-11 w-11 shrink-0 place-items-center rounded-full bg-[rgb(200_164_106_/_0.18)]">
<Icon className="h-5 w-5 text-[var(--primary)]" strokeWidth={1.8} />
</span>
<span>
<span className="min-w-0">
<span className="block text-xs font-bold uppercase tracking-[0.1em] text-[var(--muted-foreground)]">{c.label}</span>
<span className="block text-base font-semibold text-[var(--tour-ink)]">{c.value}</span>
<span className="block break-words text-base font-semibold text-[var(--tour-ink)]">{c.value}</span>
</span>
</>
);
const base = "public-panel flex items-center gap-4 rounded-[14px] p-5";
return c.href ? (
<a
key={c.label}
href={c.href}
target={c.external ? "_blank" : undefined}
rel={c.external ? "noopener noreferrer" : undefined}
className={`${base} group transition hover:-translate-y-0.5`}
>
{inner}
</a>
) : (
<div key={c.label} className={base}>
{inner}
</div>
);
})}
</div>
<p className="mt-4 inline-flex items-center gap-2 text-xs leading-5 text-[var(--muted-foreground)]">
<Send className="h-3.5 w-3.5 text-[var(--primary)]" strokeWidth={1.8} />
Thông tin số điện thoại và email chính thức sẽ đưc cập nhật khi sẵn sàng.
<p className="mt-4 inline-flex items-start gap-2 text-xs leading-5 text-[var(--muted-foreground)]">
<Send className="mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--primary)]" strokeWidth={1.8} />
Mọi thông tin, hình nh liệu đóng góp xin gửi v y ban nhân dân Như Quỳnh theo đa chỉ số điện thoại trên.
</p>
</div>
</section>
@@ -101,8 +118,8 @@ export default function ContactPage() {
<section className="mx-auto max-w-7xl px-4 pb-16 sm:px-6 lg:pb-24">
<div className="public-map-frame overflow-hidden rounded-[16px] border border-[var(--surface-border)]">
<iframe
title="Bản đồ Xã Như Quỳnh, tỉnh Hưng Yên"
src="https://www.google.com/maps?q=Nh%C6%B0%20Qu%E1%BB%B3nh%2C%20H%C6%B0ng%20Y%C3%AAn&output=embed"
title="Bản đồ Thôn Đình Dù, Xã Như Quỳnh, tỉnh Hưng Yên"
src={`https://www.google.com/maps?q=${encodeURIComponent(contact.address)}&output=embed`}
loading="lazy"
referrerPolicy="no-referrer-when-downgrade"
className="h-[360px] w-full sm:h-[440px]"