From be11cc1f51085f80937d563fa33e310e0d213365 Mon Sep 17 00:00:00 2001 From: haeni82 <2021111929@dgu.ac.kr> Date: Mon, 23 Mar 2026 11:12:55 +0900 Subject: [PATCH 1/9] =?UTF-8?q?design:=20=EA=B0=80=EB=A1=9C=20=EB=84=88?= =?UTF-8?q?=EB=B9=84=20400px=20=EC=9D=B4=ED=95=98=20=EB=B0=98=EC=9D=91?= =?UTF-8?q?=ED=98=95=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20=ED=81=AC=EA=B8=B0=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/GradientButton.tsx | 16 ++- src/index.css | 114 +++++++++++++++- .../Policy/components/DataRemainingCard.tsx | 2 +- src/page/Policy/components/UserInfoCard.tsx | 27 ++-- tailwind.config.js | 127 ++++++++++-------- 5 files changed, 202 insertions(+), 84 deletions(-) diff --git a/src/components/common/GradientButton.tsx b/src/components/common/GradientButton.tsx index 5b7b6bd..6152a02 100644 --- a/src/components/common/GradientButton.tsx +++ b/src/components/common/GradientButton.tsx @@ -13,7 +13,9 @@ type Props = { borderRadius?: number; fontSize?: number; className?: string; + buttonClassName?: string; // ← 추가: 안쪽 button에 적용할 className disabled?: boolean; + fullWidth?: boolean; // ← 추가: 부모 너비 꽉 채우기 }; export default function GradientButton({ @@ -29,29 +31,29 @@ export default function GradientButton({ borderRadius, fontSize, className = "", + buttonClassName = "", disabled = false, + fullWidth = false, }: Props) { return ( - // 바깥 div: 그라데이션 배경 (테두리 역할)
- {/* 안쪽 버튼: 단색 배경 */} + {policyFilter} + + + + - {showPolicyDropdown && ( - <> -
setShowPolicyDropdown(false)} - /> -
- {(["전체", "정책없음", "정책적용", "정책예외"] as const).map( - (filter) => ( - - ), - )} -
- - )} + {showPolicyDropdown && ( + <> +
setShowPolicyDropdown(false)} + /> +
+ {(["전체", "정책없음", "정책적용", "정책예외"] as const).map( + (filter) => ( + + ), + )} +
+ + )} +
- 조건 + 조건
{(["사용량 제한", "속도 제한"] as const).map((condition) => ( -
- - {/* 콘텐츠 */} -
- {isLoading ? ( -
-
-
- ) : ( - <> - {/* 공유 데이터 풀 정보 */} - {sharedPoolData && ( -
-
-

총 공유 데이터

- - D-{remainingDays} - -
- -
-
-
- {sharedPoolData.sharedPoolTotalData.toFixed(2)} GB -
- { - onClose(); - navigate("/log"); - }} - width={20} - height={8} - borderRadius={15} - > - clock - 사용 로그 - -
- -
-
- 기본 공유 -
- {sharedPoolData.sharedPoolBaseData.toFixed(2)} GB -
-
-
- 가족 추가 -
- {sharedPoolData.sharedPoolAdditionalData.toFixed(2)} GB -
-
-
-
- -
-
현재 사용량
-
-
-
-
- - 사용 {usedData.toFixed(2)}GB / 잔여 {sharedPoolData.sharedPoolRemainingData.toFixed(2)}GB - -
-
-
- )} - - {/* 가족 구성원 정보 */} - {familyData && ( -
-

가족 구성원

-
- {familyData.members.map((member) => { - const isOwner = member.role === "OWNER"; - - return ( -
-
- -
-
- {member.userName} - - {isOwner ? "대표자" : "구성원"} - -
-
{member.phone}
-
-
-
- ); - })} -
-
- )} - - )} -
-
-
- ); -} diff --git a/src/page/Admin/components/policy/BlockPolicyTab.tsx b/src/page/Admin/components/policy/BlockPolicyTab.tsx index b0f1e05..b278df6 100644 --- a/src/page/Admin/components/policy/BlockPolicyTab.tsx +++ b/src/page/Admin/components/policy/BlockPolicyTab.tsx @@ -9,13 +9,19 @@ type Props = { const BlockPolicyTab = ({ onBlockApply, lineId, onPolicyChange }: Props) => { if (!lineId) return null; - + return ( -
+
- + { + onBlockApply?.(blockEndAt); + onPolicyChange?.(); + }} + />
); }; -export default BlockPolicyTab; \ No newline at end of file +export default BlockPolicyTab; diff --git a/src/page/Admin/components/policy/LimitPolicyTab.tsx b/src/page/Admin/components/policy/LimitPolicyTab.tsx index 17b97fb..488b419 100644 --- a/src/page/Admin/components/policy/LimitPolicyTab.tsx +++ b/src/page/Admin/components/policy/LimitPolicyTab.tsx @@ -2,10 +2,10 @@ import { useQuery } from "@tanstack/react-query"; import SliderCard from "./SliderCard"; import { limitService } from "@/api"; -const LimitPolicyTab = ({ - lineId, - onPolicyChange -}: { +const LimitPolicyTab = ({ + lineId, + onPolicyChange, +}: { lineId?: number; onPolicyChange?: () => void; }) => { @@ -16,7 +16,7 @@ const LimitPolicyTab = ({ }); return ( -
+
{isLoading ? "로그인 중..." : "로그인"} From aa483b53a76bdf8e842eaa1d6b3c89cf82b3675d Mon Sep 17 00:00:00 2001 From: haeni82 <2021111929@dgu.ac.kr> Date: Mon, 23 Mar 2026 15:57:50 +0900 Subject: [PATCH 9/9] =?UTF-8?q?fix:=20=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0?= =?UTF-8?q?=20=EB=B0=94=ED=83=95=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.css | 43 ------------------- src/page/Main/components/FamilyMemberList.tsx | 1 - src/page/Support/Support.tsx | 1 - 3 files changed, 45 deletions(-) diff --git a/src/index.css b/src/index.css index 6259c8e..b8e5a90 100644 --- a/src/index.css +++ b/src/index.css @@ -150,49 +150,6 @@ font-size: 14px !important; } -/* 400px 이하에서 모든 텍스트 크기 축소 */ -@media (max-width: 400px) { - .text-xs { - font-size: 0.65rem !important; - } /* 10px */ - .text-sm { - font-size: 0.75rem !important; - } /* 12px */ - .text-base { - font-size: 0.8rem !important; - } /* 13px */ - .text-lg { - font-size: 0.9rem !important; - } /* 14px */ - .text-xl { - font-size: 1rem !important; - } /* 16px */ - .text-2xl { - font-size: 1.2rem !important; - } /* 19px */ - .text-3xl { - font-size: 1.4rem !important; - } /* 22px */ - - /* 간격도 함께 축소 */ - .gap-3 { - gap: 0.5rem !important; - } - .gap-4 { - gap: 0.75rem !important; - } - .mb-4 { - margin-bottom: 0.75rem !important; - } - .p-4 { - padding: 0.75rem !important; - } - .px-6 { - padding-left: 1rem !important; - padding-right: 1rem !important; - } -} - /* 400px 이하에서 모든 텍스트 크기 축소 */ @media (max-width: 400px) { .text-xs { diff --git a/src/page/Main/components/FamilyMemberList.tsx b/src/page/Main/components/FamilyMemberList.tsx index bb22aa8..fbe9a05 100644 --- a/src/page/Main/components/FamilyMemberList.tsx +++ b/src/page/Main/components/FamilyMemberList.tsx @@ -40,7 +40,6 @@ export default function FamilyMemberList({

가족 구성원

- {" "} {members.map((member) => ( {/* 탭 */}
- {" "}