diff --git a/src/app/dashboard/[id]/Card/Card.tsx b/src/app/dashboard/[id]/Card/Card.tsx
index e804193..6076e8c 100644
--- a/src/app/dashboard/[id]/Card/Card.tsx
+++ b/src/app/dashboard/[id]/Card/Card.tsx
@@ -1,6 +1,7 @@
import Image from 'next/image'
import type { Card as CardType } from '@/app/api/useCards'
+import { Avatar } from '@/app/shared/components/common/Avatar'
import { useDragStore } from '../store/useDragStore'
import Tags from './Tags'
@@ -16,26 +17,48 @@ export default function Card({
const { setDraggingCard } = useDragStore()
return (
setDraggingCard({ cardId: id, columnId: columnId })}
- className="BG-white Border-section relative w-314 rounded-6 border-solid px-20 py-16"
+ onDragStart={() => setDraggingCard({ cardData: card })}
+ onContextMenu={(e: React.MouseEvent) => e.preventDefault()}
+ className="BG-white Border-section relative rounded-6 border-solid px-20 py-16"
>
- Todo Card
{imageUrl && (
)}
-
{title}
+
+ {title}
+
-
{dueDate}
-
프로필
+
)
}
diff --git a/src/app/dashboard/[id]/Card/Tags.tsx b/src/app/dashboard/[id]/Card/Tags.tsx
index 6bdc294..63addcd 100644
--- a/src/app/dashboard/[id]/Card/Tags.tsx
+++ b/src/app/dashboard/[id]/Card/Tags.tsx
@@ -1,17 +1,29 @@
+import { getColor } from '@/app/shared/lib/getColor'
+
export default function Tags({ tags }: { tags: string[] }) {
//태그 컬러 - 랜덤 배정
//카드 생성 시 - 동일 태그 입력 불가하도록
+ const bgColors = ['#F9EEE3', '#E7F7DB', '#F7DBF0', '#DBE6F7']
+ const textColors = ['#D58D49', '#86D549', '#D549B6', '#4981D5']
+
return (
-
- {tags.map((tag) => (
-
- {tag}
-
- ))}
+
+ {tags.map((tag) => {
+ const colorIndex = getColor(tag, bgColors)
+
+ return (
+
+ {tag}
+
+ )
+ })}
)
}
diff --git a/src/app/dashboard/[id]/Column/Column.tsx b/src/app/dashboard/[id]/Column/Column.tsx
index eaf64e5..816cdd1 100644
--- a/src/app/dashboard/[id]/Column/Column.tsx
+++ b/src/app/dashboard/[id]/Column/Column.tsx
@@ -15,6 +15,10 @@ export default function Column({ column }: { column: ColumnType }) {
const [isDraggingover, setDraggingover] = useState(false)
const { clearDraggingCard } = useDragStore()
const cardMutation = useCardMutation()
+ const [openCard, setOpenCard] = useState(false) //card.tsx
+ const [openCreateCard, setOpenCreateCard] = useState(false)
+ const [openCreateColumn, setOpenCreateColumn] = useState(false) //page.tsx
+ const [oepnConfigColumn, setConfigColumn] = useState(false)
if (isLoading) return
loading...
if (error) return
error...{error.message}
@@ -33,20 +37,23 @@ export default function Column({ column }: { column: ColumnType }) {
e.preventDefault()
if (isDraggingover) setDraggingover(false)
const draggingCard = useDragStore.getState().draggingCard
-
if (!draggingCard) {
console.log('no dragging card') //TODO - toast 처리 🍞
return
}
- // 동일 컬럼이면 무시
- if (draggingCard.columnId === id) {
+
+ if (draggingCard.cardData.columnId === id) {
clearDraggingCard()
return
}
- cardMutation.mutate({ cardId: draggingCard.cardId, columnId: id })
+ cardMutation.mutate({
+ columnId: id,
+ cardData: draggingCard.cardData,
+ })
}}
+ data-column-id={id}
className={cn(
- 'BG-gray Border-column flex w-354 shrink-0 flex-col gap-16 p-20',
+ 'BG-gray Border-column tablet:w-584 flex w-354 shrink-0 flex-col gap-16 p-20',
{
'!border-blue-500': isDraggingover,
},
@@ -54,8 +61,8 @@ export default function Column({ column }: { column: ColumnType }) {
>
-
-
{title}
+
+
{title}
{data?.totalCount}
@@ -65,9 +72,13 @@ export default function Column({ column }: { column: ColumnType }) {
alt="컬럼 설정"
width={20}
height={20}
+ onClick={() => setConfigColumn(true)}
/>
-