phx-react
Version:
PHX REACT
26 lines • 2.27 kB
JavaScript
import Image from 'next/image';
import React from 'react';
import { PHXIcons } from '../../assets/icon';
import { PHXDropdown } from '../Dropdown';
import { classNames } from '../types';
export default function SortItem({ children, title, subTitle, content, actions, enableBorder = false, className, originActionDropdown = 'left', dragIconPosition = 'left', }) {
const border = 'shadow-xs rounded-lg bg-white border border-gray-200';
const dragIcon = (React.createElement("div", { className: 'h-5 w-5 flex-shrink-0' },
React.createElement(Image, { alt: 'drag', height: 20, src: PHXIcons.DRAG, width: 20 })));
return (React.createElement("div", { className: classNames(enableBorder ? border : '', 'drag-item cursor-move p-4', className) },
React.createElement("div", { className: 'flex flex-col justify-center' },
React.createElement("div", { className: 'flex justify-between items-center gap-2' },
React.createElement("div", { className: 'flex items-center gap-2 flex-1 min-w-0' },
dragIconPosition === 'left' && dragIcon,
React.createElement("div", { className: 'flex flex-col gap-1 min-w-0 flex-1 ' },
React.createElement("div", { className: 'flex items-start gap-1 flex-wrap' },
typeof title === 'string' ? (React.createElement("div", { className: 'max-w-lg text-sm font-semibold text-gray-800' }, title)) : (React.createElement("div", { className: 'break-all text-xs font-semibold text-gray-800' }, title)),
!!subTitle && React.createElement("div", { className: 'flex-shrink-0' }, subTitle)))),
!!(actions === null || actions === void 0 ? void 0 : actions.length) && (React.createElement("div", { className: 'flex items-center gap-2 flex-shrink-0' },
React.createElement(PHXDropdown, { options: actions, type: 'ellipsis-icon', origin: originActionDropdown }))),
dragIconPosition === 'right' && dragIcon),
!!content &&
(typeof content === 'string' ? React.createElement("div", { className: 'mt-2 text-sm ml-7 text-gray-600' }, content) : content)),
children));
}
//# sourceMappingURL=SortItem.js.map