feat(projects): داده‌های واقعی پروژه‌ها — ستون‌های تازه و حذف داده‌های ماک

- دیتابیس/مدل/اسکیما: land_area (مساحت عرصه)، pilot_floors (طبقات روی
  همکف/پیلوت) و سه ستون واحدها (مسکونی/تجاری/اداری) به‌جای «واحدها»ی تکی
- فایل استاتیک projectsData (داده‌های ماک) حذف شد؛ لیست، جزئیات و
  «پروژه‌های شاخص» همه از دیتابیس می‌خوانند
- برچسب‌های i18n فهرست مشخصات مطابق شیت تیم
This commit is contained in:
aramesh-site deploy
2026-09-28 10:50:39 +00:00
parent 0c87a287a3
commit 182a1bb674
10 changed files with 60 additions and 117 deletions
@@ -10,10 +10,9 @@ import { useFieldSaver } from '../../admin/AdminContext'
import { useLang } from '../../i18n/lang'
import { InlineEdit } from '../admin/InlineEdit'
import type { ProjectStatus } from '../../data/site'
import { projectsData } from '../../data/projectsData'
export function FeaturedProjects() {
const { status_labels } = useSite()
const { status_labels, projects } = useSite()
const { t, href } = useLang()
const heading = useSectionHeading('featured_projects')
const save = useFieldSaver()
@@ -34,8 +33,8 @@ export function FeaturedProjects() {
const [status, setStatus] = useState<ProjectStatus>('done')
// Filter and slice static project data
const list = projectsData.filter((p) => p.status === status).slice(0, 3)
// سه پروژه از دیتابیس — ویرایش پنل همان‌جا اعمال می‌شود
const list = projects.filter((p) => p.status === status).slice(0, 3)
const BASE_IMG_URL = "/seed-media/2026/09/";
return (
@@ -87,8 +86,7 @@ export function FeaturedProjects() {
className="grid gap-6 lg:grid-cols-3"
>
{list.map((project, i) => {
const dummyImageName = `${(i % 6) + 1}.png`;
const imageUrl = `${BASE_IMG_URL}${dummyImageName}`;
const imageUrl = project.image || undefined;
return (
<motion.div