diff --git a/src/pages/workspace/WorkspaceSetting.tsx b/src/pages/workspace/WorkspaceSetting.tsx index 5e9d96f8..8059f1b1 100644 --- a/src/pages/workspace/WorkspaceSetting.tsx +++ b/src/pages/workspace/WorkspaceSetting.tsx @@ -150,8 +150,19 @@ export default function WorkspaceSetting() { const saving = updateMutation.isPending; + const hasChanges = useMemo(() => { + if (!detail) return false; + + const nameChanged = name.trim() !== detail.name.trim(); + const descChanged = desc.trim() !== (detail.description ?? "").trim(); + const logoChanged = + logoFile !== null || (isImageDeleted && Boolean(detail.logoUrl)); + + return nameChanged || descChanged || logoChanged; + }, [detail, name, desc, logoFile, isImageDeleted]); + const onSave = () => { - if (orgId === null || !name.trim()) return; + if (orgId === null || !name.trim() || !hasChanges) return; updateMutation.mutate(orgId); }; @@ -278,7 +289,7 @@ export default function WorkspaceSetting() {

조직 기본 정보

-
+
로고 이미지
@@ -294,7 +305,7 @@ export default function WorkspaceSetting() { onClick={openFilePicker} disabled={!isAdmin || saving || deleting} aria-label="로고 이미지 업로드 또는 변경" - className="flex h-60 w-60 cursor-pointer items-center justify-center overflow-hidden rounded-lg border border-surface-400 bg-surface-200 outline-none transition-colors hover:bg-surface-300/70 focus-visible:ring-2 focus-visible:ring-primary-500/40 disabled:cursor-not-allowed disabled:opacity-50 tablet:h-46 tablet:w-46" + className="flex h-52 w-52 cursor-pointer items-center justify-center overflow-hidden rounded-lg border border-surface-400 bg-surface-200 outline-none transition-colors hover:bg-surface-300/70 focus-visible:ring-2 focus-visible:ring-primary-500/40 disabled:cursor-not-allowed disabled:opacity-50 tablet:h-40 tablet:w-40" > {logoPreview ? ( setDesc(e.target.value)} - minRows={4} - className="min-h-90" + minRows={3} + className="min-h-44" disabled={!isAdmin || saving || deleting} />
@@ -366,7 +377,7 @@ export default function WorkspaceSetting() {
)} @@ -398,7 +415,7 @@ export default function WorkspaceSetting() {

현재 소유자: {currentOwner?.name ?? myName ?? "-"}

-

+

소유권은 같은 조직의 관리자(ADMIN)에게만 양도할 수 있습니다.