diff --git a/frontend/src/map/ProjectImageSlider.tsx b/frontend/src/map/ProjectImageSlider.tsx index 6483e89..88b0467 100644 --- a/frontend/src/map/ProjectImageSlider.tsx +++ b/frontend/src/map/ProjectImageSlider.tsx @@ -9,6 +9,8 @@ type ProjectImageSliderProps = { images: string[] alt: string className?: string + /** در نبود تصویر، به‌جای جای‌نگهدار کل قاب پنهان شود (صفحه‌ای که تصویر را جای دیگر نشان می‌دهد) */ + hideWhenEmpty?: boolean } /** @@ -16,7 +18,7 @@ type ProjectImageSliderProps = { * شمارندهٔ اسلاید و گوشه‌های گرد هم‌اندازهٔ کارت. همهٔ رویدادهای اشاره روی * اسلایدر متوقف می‌شوند تا کلیک/کشیدن آن، نقشه را جابه‌جا یا پاپ‌آپ را نبندد. */ -export function ProjectImageSlider({ images, alt, className = '' }: ProjectImageSliderProps) { +export function ProjectImageSlider({ images, alt, className = '', hideWhenEmpty = false }: ProjectImageSliderProps) { const { t } = useLang() const [index, setIndex] = useState(0) @@ -26,6 +28,7 @@ export function ProjectImageSlider({ images, alt, className = '' }: ProjectImage const frame = `relative aspect-[16/10] w-full overflow-hidden rounded-t-2xl bg-char ${className}` if (!images.length) { + if (hideWhenEmpty) return null return (
diff --git a/frontend/src/map/ProjectPopupCard.tsx b/frontend/src/map/ProjectPopupCard.tsx index d73a279..96f27ed 100644 --- a/frontend/src/map/ProjectPopupCard.tsx +++ b/frontend/src/map/ProjectPopupCard.tsx @@ -15,6 +15,8 @@ type ProjectPopupCardProps = { project: MapProject /** تصاویر پروژه — همان آرایهٔ صفحهٔ جزئیات؛ در نبودش جای‌نگهدار می‌آید */ images?: string[] + /** در نبود تصویر، قاب تصویر پنهان شود (نه جای‌نگهدار) — برای صفحهٔ خود پروژه */ + hideImageWhenEmpty?: boolean onClose: () => void /** دکمه‌های پایهٔ کارت — هر نما اکشن‌های خودش را می‌دهد (عمودی روی هم) */ children: ReactNode @@ -25,7 +27,7 @@ type ProjectPopupCardProps = { * عنوان و توضیح، و در پایه دکمه‌های عمودی. راست‌به‌چپ، شیشه‌ای تیره و * هم‌اندازهٔ کارت‌های سایت. سال پروژه عمداً نمایش داده نمی‌شود. */ -export function ProjectPopupCard({ project, images = [], onClose, children }: ProjectPopupCardProps) { +export function ProjectPopupCard({ project, images = [], hideImageWhenEmpty = false, onClose, children }: ProjectPopupCardProps) { const { t } = useLang() const description = project.description.trim() || t('mapProjectDescription') @@ -36,7 +38,7 @@ export function ProjectPopupCard({ project, images = [], onClose, children }: Pr > {/* اسلایدر تصویر: لبه‌تا‌لبه، بدون حاشیه، با فلش‌های چپ/راست */}
- +