From 6dae2896d7cc1ef1830529a99fe5c33e1d655d55 Mon Sep 17 00:00:00 2001
From: ljpark
Date: Thu, 26 Feb 2026 15:05:04 +0900
Subject: [PATCH] =?UTF-8?q?dm=5Fnew:=20(with-layout)=20=EC=9D=B4=ED=95=98?=
=?UTF-8?q?=20=EB=A1=9C=20=EA=B5=90=EC=B2=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../(with-layout)/intro/greywater/page.tsx | 15 +++++++----
.../app/(with-layout)/intro/law/page.tsx | 24 +++++++++++------
.../app/(with-layout)/intro/rain/page.tsx | 18 ++++++++-----
.../app/(with-layout)/intro/sewage/page.tsx | 12 ++++++---
.../(with-layout)/status/greywater/page.tsx | 18 ++++++++-----
.../app/(with-layout)/status/rain/page.tsx | 15 +++++++----
.../app/(with-layout)/status/sewage/page.tsx | 18 ++++++++-----
apps/dm_new/components/CaseImageSlider.tsx | 26 ++++++++++++-------
apps/dm_new/components/CaseTabsCarousel.tsx | 26 ++++++++++++-------
apps/dm_new/components/ImageSlider.tsx | 26 ++++++++++++-------
apps/dm_new/components/Lnb.tsx | 5 +++-
11 files changed, 135 insertions(+), 68 deletions(-)
diff --git a/apps/dm_new/app/(with-layout)/intro/greywater/page.tsx b/apps/dm_new/app/(with-layout)/intro/greywater/page.tsx
index 54f4ef682..fec020ece 100644
--- a/apps/dm_new/app/(with-layout)/intro/greywater/page.tsx
+++ b/apps/dm_new/app/(with-layout)/intro/greywater/page.tsx
@@ -1,7 +1,11 @@
// apps/dm/app/(landing)/reuse/intro/greywater/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import greywaterIntro from "@/public/images/landing/intro/greywater_intro.png";
+import greywaterMandatory from "@/public/images/landing/intro/greywater_mandatory.png";
+import greywaterStandard from "@/public/images/landing/intro/greywater_standard.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +25,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +63,7 @@ export default function GreywaterPage() {
@@ -68,7 +73,7 @@ export default function GreywaterPage() {
@@ -78,7 +83,7 @@ export default function GreywaterPage() {
diff --git a/apps/dm_new/app/(with-layout)/intro/law/page.tsx b/apps/dm_new/app/(with-layout)/intro/law/page.tsx
index 32728806b..0d903a32a 100644
--- a/apps/dm_new/app/(with-layout)/intro/law/page.tsx
+++ b/apps/dm_new/app/(with-layout)/intro/law/page.tsx
@@ -1,7 +1,14 @@
// apps/dm/app/(landing)/reuse/intro/law/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import lawTimeline from "@/public/images/landing/intro/law_timeline.png";
+import performanceLeft from "@/public/images/landing/intro/performance_left.png";
+import domesticTextbox from "@/public/images/landing/intro/domestic_textbox.png";
+import policyTimeline from "@/public/images/landing/intro/policy_timeline.png";
+import relNote from "@/public/images/landing/intro/rel_note.png";
+import linkage from "@/public/images/landing/intro/linkage.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +28,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +66,7 @@ export default function WaterReuseLawPage() {
@@ -68,7 +76,7 @@ export default function WaterReuseLawPage() {
@@ -78,7 +86,7 @@ export default function WaterReuseLawPage() {
@@ -88,7 +96,7 @@ export default function WaterReuseLawPage() {
@@ -98,7 +106,7 @@ export default function WaterReuseLawPage() {
@@ -114,7 +122,7 @@ export default function WaterReuseLawPage() {
• 물관리 계획(국가수도기본계획, 국가 및 유역하수도종합계획, 하천유역수자원관리계획 등)과의 연계성 확보 → 통합적인 관점에서 물이용 체계 구축 필요
-
+
diff --git a/apps/dm_new/app/(with-layout)/intro/rain/page.tsx b/apps/dm_new/app/(with-layout)/intro/rain/page.tsx
index 0fc3b1de9..3f88d7f58 100644
--- a/apps/dm_new/app/(with-layout)/intro/rain/page.tsx
+++ b/apps/dm_new/app/(with-layout)/intro/rain/page.tsx
@@ -1,7 +1,12 @@
// apps/dm/app/(landing)/reuse/intro/law/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import rainreuseIntro from "@/public/images/landing/intro/rainreuse_intro.png";
+import rainreuseMandatory from "@/public/images/landing/intro/rainreuse_mandatory.png";
+import rainwaterDesign from "@/public/images/landing/intro/rainwater_design.png";
+import rainwaterStandards from "@/public/images/landing/intro/rainwater_standards.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +26,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +64,7 @@ export default function RainwaterReusePage() {
@@ -68,7 +74,7 @@ export default function RainwaterReusePage() {
@@ -78,7 +84,7 @@ export default function RainwaterReusePage() {
@@ -88,7 +94,7 @@ export default function RainwaterReusePage() {
diff --git a/apps/dm_new/app/(with-layout)/intro/sewage/page.tsx b/apps/dm_new/app/(with-layout)/intro/sewage/page.tsx
index c6e355ed9..526fd4e9c 100644
--- a/apps/dm_new/app/(with-layout)/intro/sewage/page.tsx
+++ b/apps/dm_new/app/(with-layout)/intro/sewage/page.tsx
@@ -1,7 +1,10 @@
// apps/dm/app/(landing)/reuse/intro/treated/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import treatedwaterIntro from "@/public/images/landing/intro/treatedwater_intro.png";
+import treatedwaterMandatory from "@/public/images/landing/intro/treatedwater_mandatory.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +24,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +62,7 @@ export default function TreatedWaterPage() {
@@ -68,7 +72,7 @@ export default function TreatedWaterPage() {
diff --git a/apps/dm_new/app/(with-layout)/status/greywater/page.tsx b/apps/dm_new/app/(with-layout)/status/greywater/page.tsx
index 37d958045..b84a6760d 100644
--- a/apps/dm_new/app/(with-layout)/status/greywater/page.tsx
+++ b/apps/dm_new/app/(with-layout)/status/greywater/page.tsx
@@ -1,7 +1,12 @@
// apps/dm/app/(landing)/reuse/cases/greywater/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import greywaterOverall from "@/public/images/landing/cases/greywater_overall.png";
+import greywaterFactory from "@/public/images/landing/cases/greywater_factory.png";
+import greywaterBuilding from "@/public/images/landing/cases/greywater_building.png";
+import greywaterUsage from "@/public/images/landing/cases/greywater_usage.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +26,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +64,7 @@ export default function GreywaterPage() {
전체 중수도 설치 및 이용 현황 (공장 및 발전시설 제외)
@@ -68,7 +74,7 @@ export default function GreywaterPage() {
공장 및 발전시설 내 중수도 설치 및 이용 현황
@@ -78,7 +84,7 @@ export default function GreywaterPage() {
@@ -88,7 +94,7 @@ export default function GreywaterPage() {
diff --git a/apps/dm_new/app/(with-layout)/status/rain/page.tsx b/apps/dm_new/app/(with-layout)/status/rain/page.tsx
index 810053f52..aa33147f0 100644
--- a/apps/dm_new/app/(with-layout)/status/rain/page.tsx
+++ b/apps/dm_new/app/(with-layout)/status/rain/page.tsx
@@ -1,7 +1,11 @@
// apps/dm/app/(landing)/reuse/cases/rain/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import rainwaterBuilding from "@/public/images/landing/cases/rainwater_building.png";
+import rainwaterUsage from "@/public/images/landing/cases/rainwater_usage.png";
+import rainwaterUsageAmount from "@/public/images/landing/cases/rainwater_usage_amount.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +25,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +63,7 @@ export default function GreywaterPage() {
@@ -68,7 +73,7 @@ export default function GreywaterPage() {
빗물이용시설의 용도별 분포 (2023년 기준)
@@ -78,7 +83,7 @@ export default function GreywaterPage() {
diff --git a/apps/dm_new/app/(with-layout)/status/sewage/page.tsx b/apps/dm_new/app/(with-layout)/status/sewage/page.tsx
index 21b3a5bcf..19214da02 100644
--- a/apps/dm_new/app/(with-layout)/status/sewage/page.tsx
+++ b/apps/dm_new/app/(with-layout)/status/sewage/page.tsx
@@ -1,7 +1,12 @@
// apps/dm/app/(landing)/reuse/cases/treated/page.tsx
"use client";
+import Image, { type StaticImageData } from "next/image";
import SubPageHeader from "@/components/SubPageHeader";
+import treatedWaterYear from "@/public/images/landing/cases/treated_water_year.png";
+import treatedWaterUsage from "@/public/images/landing/cases/treated_water_usage.png";
+import treatedWaterFacility from "@/public/images/landing/cases/treated_water_facility.png";
+import treatedWaterRegion from "@/public/images/landing/cases/treated_water_region.png";
function SectionTitle({ children }: { children: React.ReactNode }) {
return (
@@ -21,17 +26,18 @@ function Hr({ className = "" }: HrProps) {
}
type ImgCardProps = {
- src: string;
+ src: StaticImageData;
alt: string;
};
function ImgCard({ src, alt }: ImgCardProps) {
return (
-
);
@@ -58,7 +64,7 @@ export default function GreywaterPage() {
@@ -68,7 +74,7 @@ export default function GreywaterPage() {
@@ -78,7 +84,7 @@ export default function GreywaterPage() {
@@ -88,7 +94,7 @@ export default function GreywaterPage() {
diff --git a/apps/dm_new/components/CaseImageSlider.tsx b/apps/dm_new/components/CaseImageSlider.tsx
index 6c50d5a5c..41d8987b8 100644
--- a/apps/dm_new/components/CaseImageSlider.tsx
+++ b/apps/dm_new/components/CaseImageSlider.tsx
@@ -1,6 +1,7 @@
// apps/dm/app/(landing)/reuse/_components/ImageSlider.tsx
"use client";
+import Image from "next/image";
import { useEffect, useMemo, useRef, useState } from "react";
type Slide = { src: string; alt?: string };
@@ -86,10 +87,12 @@ export default function CaseImageSlider({
w-[80px] h-[80px] rounded-full border border-black/20 bg-white
grid place-items-center shadow-sm hover:bg-black/[0.03]"
>
-
@@ -102,10 +105,12 @@ export default function CaseImageSlider({
w-[80px] h-[80px] rounded-full border border-black/20 bg-white
grid place-items-center shadow-sm hover:bg-black/[0.03]"
>
-
@@ -129,10 +134,13 @@ export default function CaseImageSlider({
>
{safeSlides.map((s, i) => (
-
diff --git a/apps/dm_new/components/CaseTabsCarousel.tsx b/apps/dm_new/components/CaseTabsCarousel.tsx
index 8d916817e..ece8f0848 100644
--- a/apps/dm_new/components/CaseTabsCarousel.tsx
+++ b/apps/dm_new/components/CaseTabsCarousel.tsx
@@ -8,6 +8,7 @@ import React, {
useRef,
useState,
} from "react";
+import Image from "next/image";
/**
* CaseTabsCarousel.tsx (FINAL OPTIMIZED)
@@ -459,10 +460,12 @@ export default function CaseTabsCarousel() {
].join(" ")}
aria-label="이전"
>
-
@@ -480,10 +483,12 @@ export default function CaseTabsCarousel() {
].join(" ")}
aria-label="다음"
>
-
@@ -513,10 +518,13 @@ export default function CaseTabsCarousel() {
className="overflow-hidden rounded-[22px] border-2 border-sky-400 bg-white"
>
-
diff --git a/apps/dm_new/components/ImageSlider.tsx b/apps/dm_new/components/ImageSlider.tsx
index 6c50d5a5c..41d8987b8 100644
--- a/apps/dm_new/components/ImageSlider.tsx
+++ b/apps/dm_new/components/ImageSlider.tsx
@@ -1,6 +1,7 @@
// apps/dm/app/(landing)/reuse/_components/ImageSlider.tsx
"use client";
+import Image from "next/image";
import { useEffect, useMemo, useRef, useState } from "react";
type Slide = { src: string; alt?: string };
@@ -86,10 +87,12 @@ export default function CaseImageSlider({
w-[80px] h-[80px] rounded-full border border-black/20 bg-white
grid place-items-center shadow-sm hover:bg-black/[0.03]"
>
-
@@ -102,10 +105,12 @@ export default function CaseImageSlider({
w-[80px] h-[80px] rounded-full border border-black/20 bg-white
grid place-items-center shadow-sm hover:bg-black/[0.03]"
>
-
@@ -129,10 +134,13 @@ export default function CaseImageSlider({
>
{safeSlides.map((s, i) => (
-
diff --git a/apps/dm_new/components/Lnb.tsx b/apps/dm_new/components/Lnb.tsx
index 13c6523db..b3861fbe0 100644
--- a/apps/dm_new/components/Lnb.tsx
+++ b/apps/dm_new/components/Lnb.tsx
@@ -1,5 +1,6 @@
"use client";
+import Image from "next/image";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { useEffect, useMemo, useState } from "react";
@@ -130,9 +131,11 @@ export default function Lnb() {
isOpen ? "rotate-180" : "rotate-0",
].join(" ")}
>
-