UNPKG

react-kanban-kit

Version:

A flexible and customizable Kanban board component for React applications, built with TypeScript and modern drag-and-drop functionality powered by Atlassian's pragmatic-drag-and-drop.

90 lines (89 loc) 2.77 kB
import classNames from "../../node_modules/classnames/index.es.js"; import { withPrefix } from "../../utils/getPrefix.es.js"; import CardSkeleton from "../CardSkeleton/CardSkeleton.es.js"; import Card, { CardShadow } from "../Card/Card.es.js"; import DefaultCard from "../DefaultCard/DefaultCard.es.js"; import { jsx } from "react/jsx-runtime"; const isCardDraggable = (data, isTypeDraggable) => { return (data == null ? void 0 : data.isDraggable) !== void 0 ? data == null ? void 0 : data.isDraggable : isTypeDraggable; }; const GenericItem = (props) => { const { index, options } = props; const { data, column, configMap, isSkeleton, cardWrapperStyle, cardWrapperClassName, cardsGap = 8, isShadow, isListFooter, cardOverHeight = 90, renderSkeletonCard, onCardClick, onCardDndStateChange, renderCardDragIndicator, renderListFooter, renderCardDragPreview, renderGap } = options; const { render = DefaultCard, isDraggable = true } = (configMap == null ? void 0 : configMap[data == null ? void 0 : data.type]) || {}; const wrapperClassName = classNames(withPrefix("generic-item-wrapper"), cardWrapperClassName); const renderCardContent = () => { if (isListFooter) return /* @__PURE__ */ jsx("div", { className: withPrefix("generic-item-list-footer"), children: (renderListFooter == null ? void 0 : renderListFooter(column)) || "Default Footer" }); else if (isShadow) return /* @__PURE__ */ jsx(CardShadow, { height: cardOverHeight, customIndicator: renderCardDragIndicator == null ? void 0 : renderCardDragIndicator(data, { height: cardOverHeight }) }); else if (isSkeleton) return /* @__PURE__ */ jsx("div", { className: withPrefix("generic-item-skeleton"), "data-index": index, "data-rkk-column": column == null ? void 0 : column.id, children: (renderSkeletonCard == null ? void 0 : renderSkeletonCard({ index, column })) || /* @__PURE__ */ jsx(CardSkeleton, { animationType: "wave" }) }); return /* @__PURE__ */ jsx(Card, { render, isDraggable: isCardDraggable(data, isDraggable), data, column, index, onClick: onCardClick, cardsGap, renderGap, onCardDndStateChange, renderCardDragIndicator, renderCardDragPreview }); }; return /* @__PURE__ */ jsx("div", { className: wrapperClassName, style: { ...(cardWrapperStyle == null ? void 0 : cardWrapperStyle(data, column)) || {} }, children: renderCardContent() }); }; export { GenericItem as default }; //# sourceMappingURL=GenericItem.es.js.map