Skip to content

Commit 2c9c399

Browse files
style: 현재 작성중인 임시저장본일 때 스타일처리 변경
1 parent b0f09d0 commit 2c9c399

2 files changed

Lines changed: 63 additions & 42 deletions

File tree

app/entities/post/write/BlogForm.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ const BlogForm = () => {
6767
saveToCloud,
6868
deleteCloudDraft,
6969
toggleAutoSync,
70+
getCurrentDraftId,
7071
} = useCloudDraft();
7172

7273
const [createSeriesOpen, setCreateSeriesOpen] = useState(false);
@@ -251,6 +252,7 @@ const BlogForm = () => {
251252
draftListMode === 'delete' ? handleDeleteDraft : undefined
252253
}
253254
mode={draftListMode}
255+
currentDraftId={getCurrentDraftId()}
254256
/>
255257
</Overlay>
256258

app/entities/post/write/DraftListOverlay.tsx

Lines changed: 61 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ interface DraftListOverlayProps {
55
onLoadDraft: (draft: DraftListItem) => void;
66
onDeleteDraft?: (draftId: string, source: 'local' | 'cloud') => void;
77
mode: 'load' | 'delete';
8+
currentDraftId?: string | null;
89
}
910

1011
const DraftListOverlay = ({
1112
drafts,
1213
onLoadDraft,
1314
onDeleteDraft,
1415
mode,
16+
currentDraftId,
1517
}: DraftListOverlayProps) => {
1618
const formatDate = (date: Date) => {
1719
return new Date(date).toLocaleDateString('ko-KR', {
@@ -50,51 +52,68 @@ const DraftListOverlay = ({
5052
</p>
5153
) : (
5254
<div className="space-y-3">
53-
{drafts.map((draft) => (
54-
<div
55-
key={draft.id}
56-
onClick={() => handleItemClick(draft)}
57-
className={`
58-
border rounded-lg p-4 transition-all
59-
${mode === 'load' ? 'cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700' : ''}
60-
${draft.source === 'local' ? 'border-blue-300' : 'border-green-300'}
61-
`}
62-
>
63-
<div className="flex justify-between items-start">
64-
<div className="flex-1">
65-
<h3 className="font-semibold text-default">
66-
{draft.title || '제목 없음'}
67-
</h3>
68-
<div className="flex items-center gap-2 mt-1">
69-
<span className="text-xs text-gray-500">
70-
{formatDate(draft.date)}
71-
</span>
72-
<span
73-
className={`
74-
text-xs px-2 py-1 rounded
75-
${
76-
draft.source === 'local'
77-
? 'bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-200'
78-
: 'bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-200'
79-
}
80-
`}
81-
>
82-
{draft.source === 'local' ? '로컬' : '클라우드'}
83-
</span>
55+
{drafts.map((draft) => {
56+
const isCurrentDraft =
57+
draft.source === 'cloud' && draft.id === currentDraftId;
58+
59+
return (
60+
<div
61+
key={draft.id}
62+
onClick={() => !isCurrentDraft && handleItemClick(draft)}
63+
className={`
64+
border rounded-lg p-4 transition-all
65+
${draft.source === 'local' ? 'border-blue-300' : 'border-green-300'}
66+
${isCurrentDraft
67+
? 'opacity-50 cursor-not-allowed'
68+
: mode === 'load'
69+
? 'cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700'
70+
: ''
71+
}
72+
`}
73+
>
74+
<div className="flex justify-between items-start">
75+
<div className="flex-1">
76+
<div className="flex items-center gap-2">
77+
<h3 className="font-semibold text-default">
78+
{draft.title || '제목 없음'}
79+
</h3>
80+
{isCurrentDraft && (
81+
<span className="text-xs px-2 py-1 rounded bg-yellow-100 text-yellow-700 dark:bg-yellow-900 dark:text-yellow-200 font-semibold">
82+
작성 중
83+
</span>
84+
)}
85+
</div>
86+
<div className="flex items-center gap-2 mt-1">
87+
<span className="text-xs text-gray-500">
88+
{formatDate(draft.date)}
89+
</span>
90+
<span
91+
className={`
92+
text-xs px-2 py-1 rounded
93+
${
94+
draft.source === 'local'
95+
? 'bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-200'
96+
: 'bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-200'
97+
}
98+
`}
99+
>
100+
{draft.source === 'local' ? '로컬' : '클라우드'}
101+
</span>
102+
</div>
84103
</div>
85-
</div>
86104

87-
{mode === 'delete' && onDeleteDraft && (
88-
<button
89-
onClick={(e) => handleDelete(draft, e)}
90-
className="ml-4 px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 transition-colors"
91-
>
92-
삭제
93-
</button>
94-
)}
105+
{mode === 'delete' && onDeleteDraft && (
106+
<button
107+
onClick={(e) => handleDelete(draft, e)}
108+
className="ml-4 px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 transition-colors"
109+
>
110+
삭제
111+
</button>
112+
)}
113+
</div>
95114
</div>
96-
</div>
97-
))}
115+
);
116+
})}
98117
</div>
99118
)}
100119
</div>

0 commit comments

Comments
 (0)