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}

-

프로필

+
+
+ 마감일 +
+ {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)} />
-