Работа с React beautiful-dnd. Помогите если работали с этим. Проблема с id

Создавал клона Trello Читал документацию и посматривал видео с ютуба

введите сюда описание изображения

import { useState } from "react";
import AddCardList from "../../components/TrelloList/AddCardList/AddCardList";
import TrelloList from "../TrelloList/TrelloList";
import TrelloData from "../../trellodata";
import ContextAPI from "../../ContextAPI";
import { v4 as uuidv4 } from "uuid";
import { DragDropContext, Droppable } from "react-beautiful-dnd";
import styles from "./App.module.css";

function App() {
  const [data, setData] = useState(TrelloData);

  const updateListTitle = (updatedTitle, listId) => {
    const list = data.lists[listId];
    list.title = updatedTitle;
    setData({
      ...data,
      lists: {
        ...data.lists,
        [listId]: list,
      },
    });
  };

  const addCard = (title, listId) => {
    const newCardId = uuidv4();

    const newCard = {
      id: newCardId,
      title,
    };

    const list = data.lists[listId];
    list.cards = [...list.cards, newCard];
    setData({
      ...data,
      lists: {
        ...data.lists,
        [listId]: list,
      },
    });
  };

  const addList = (title) => {
    const newListId = uuidv4();
    setData({
      listIds: [...data.listIds, newListId],
      lists: {
        ...data.lists,
        [newListId]: {
          id: newListId,
          title,
          cards: [],
        },
      },
    });
  };

  const onDragEnd = () => {};

  return (
    <ContextAPI.Provider value={{ updateListTitle, addCard, addList }}>
      <div className={styles.root}>
        <DragDropContext onDragEnd={onDragEnd}>
          <Droppable droppableId="12345" type="list" direction="horizontal">
            {(provided) => (
              <div className={styles.container} ref={provided.innerRef}
                {...provided.droppableProps}
              >
                {data.listIds.map((listID, index) => {
                  const list = data.lists[listID];
                  return <TrelloList list={list} key={listID} index={index}/>;
                })}
                <div>
                  <AddCardList type="list" />
                  {provided.placeholder}
                </div>
              </div>
            )}
          </Droppable>
        </DragDropContext>
      </div>
    </ContextAPI.Provider>
  );
}

export default App;


import ListTitle from "../../components/TrelloList/ListTitle/ListTitle";
import TrelloCard from "../../components/TrelloList/TrelloCard/TrelloCard";
import AddCardList from "../../components/TrelloList/AddCardList/AddCardList";
import styles from "./TrelloList.module.css";
import { Draggable, Droppable } from "react-beautiful-dnd";

const TrelloList = ({ list, index }) => {
  return (
    <Draggable draggableId={list.id} index={index}>
      {(provided) => (
        <div {...provided.draggableProps} ref={provided.innerRef}>
          <div className={styles.paper}>
            <ListTitle title={list.title} listId={list.id} />
            <Droppable droppableId={list.id}>
              {(provided) => (
                <div ref={provided.innerRef} {...provided.droppableProps}>
                  {list.cards.map((card, index) => (
                    <TrelloCard card={card} key={card.id} index={index} />
                  ))}
                  {provided.placeholder}
                </div>
              )}
            </Droppable>
            <AddCardList type="card" listId={list.id} />
          </div>
        </div>
      )}
    </Draggable>
  );
};

export default TrelloList;


import { Draggable } from "react-beautiful-dnd";
import styles from "./TrelloCard.module.css";

const TrelloCard = ({ card, index }) => {
  return (
    <Draggable draggableId={card.id} index={index}>
      {(provided) => 
          ( 
            <div ref={provided.innerRef} {...provided.dragHandleProps}
                  {...provided.draggableProps}>
                  <div className={styles.paper}>{card.title}</div>
            </div>
          )}
    </Draggable>
  );
};

export default TrelloCard;

const TrelloData = {
  lists: {
    "01list": {
      id: "01list",
      title: "To do",
      cards: [
        {
          id: "01card",
          title: "Doing homework",
        },
        {
          id: "02card",
          title: "Walking",
        },
        {
          id: "03card",
          title: "Cleaning",
        },
      ],
    },
    "02list": {
      id: "02list",
      title: "In progress",
      cards: [],
    },
  },
  listIds: ["01list", "02list"],
};

export default TrelloData;

Ответы (0 шт):