import { Add, ArrowDownward, ArrowUpward, Close, CopyAll, Edit, } from '@mui/icons-material' import clsx from 'clsx' import { ReactNode } from 'react' import { useTranslation } from 'react-i18next' import { Action } from '@dao-dao/types' import { IconButton } from '../icon_buttons' import { Tooltip } from '../tooltip' export type ActionCardProps = { action: Action onEdit?: () => void onMoveUp?: () => void onMoveDown?: () => void onAddNew?: () => void onDuplicate?: () => void onRemove?: () => void childrenContainerClassName?: string children: ReactNode | ReactNode[] } export const ActionCard = ({ action, onEdit, onMoveUp, onMoveDown, onAddNew, onDuplicate, onRemove, childrenContainerClassName, children, }: ActionCardProps) => { const { t } = useTranslation() const showRemove = !action?.metadata.programmaticOnly && !!onRemove const showActions = !action?.metadata.programmaticOnly && (onEdit || onMoveUp || onMoveDown || onDuplicate || onAddNew) return (

{action.metadata.label}

{showRemove && (
)}
{children}
{showActions && (
{onEdit && ( )} {onMoveUp && ( )} {onMoveDown && ( )} {onAddNew && ( )} {onDuplicate && ( )}
)}
) } export const ActionCardLoader = () => (
{/* eslint-disable-next-line i18next/no-literal-string */}

Icon

{/* eslint-disable-next-line i18next/no-literal-string */}

Label

)