diff --git a/src/components/common/controlbox/ControlBox.tsx b/src/components/common/controlbox/ControlBox.tsx index c0b92b3f..ced102b7 100644 --- a/src/components/common/controlbox/ControlBox.tsx +++ b/src/components/common/controlbox/ControlBox.tsx @@ -1,4 +1,5 @@ -import type { HTMLAttributes } from "react"; +import type { HTMLAttributes, ReactNode } from "react"; +import type React from "react"; import { twMerge } from "tailwind-merge"; import Button from "../button/Button"; @@ -8,6 +9,16 @@ interface IControlBoxProps extends HTMLAttributes { description: string; buttonText: string; onButtonClick: () => void; + containerClassName?: string; + titleClassName?: string; + descriptionClassName?: string; + buttonVariant?: React.ComponentProps["variant"]; + buttonSize?: React.ComponentProps["size"]; + buttonClassName?: string; + buttonDisabled?: boolean; + buttonSlot?: ReactNode; + leadingSlot?: ReactNode; + contentClassName?: string; } export default function ControlBox({ @@ -16,30 +27,64 @@ export default function ControlBox({ buttonText, onButtonClick, className, + containerClassName, + titleClassName, + descriptionClassName, + buttonVariant = "primary", + buttonSize = "small", + buttonClassName, + buttonDisabled, + buttonSlot, + leadingSlot, + contentClassName, ...rest }: IControlBoxProps) { return (
-
-

{title}

-

- {description} -

-
- + {leadingSlot ?
{leadingSlot}
: null} +
+

+ {title} +

+

+ {description} +

+
+
+ + {buttonSlot ?? ( + + )} ); } diff --git a/src/pages/workspace/WorkspaceSetting.tsx b/src/pages/workspace/WorkspaceSetting.tsx index 22e89818..c978b0c9 100644 --- a/src/pages/workspace/WorkspaceSetting.tsx +++ b/src/pages/workspace/WorkspaceSetting.tsx @@ -3,6 +3,7 @@ import { useNavigate, useParams } from "react-router-dom"; import { toast } from "sonner"; import Button from "@/components/common/button/Button"; +import ControlBox from "@/components/common/controlbox/ControlBox"; import Input from "@/components/common/input/Input"; import Modal from "@/components/common/modal/Modal"; import TextareaField from "@/components/common/textarea/TextareaField"; @@ -211,28 +212,22 @@ export default function WorkspaceSetting() { {saving ? "저장 중.." : "변경사항 저장하기"} -
-
- -
-
- 워크스페이스 삭제 -
-

- 워크스페이스를 삭제하면 모든 데이터가 영구적으로 삭제됩니다. -
이 작업은 되돌릴 수 없습니다. -

-
-
- +
+ } + />