import React, { FC } from "react"; import styles from "./styles.module.scss"; import { NavLink } from "react-router-dom"; import { CellShade } from "~/components/flow/CellShade"; import { FlowDisplay, INode } from "~/redux/types"; import { FlowCellText } from "~/components/flow/FlowCellText"; import classNames from "classnames"; import { FlowCellMenu } from "~/components/flow/FlowCellMenu"; import { useFlowCellControls } from "~/hooks/flow/useFlowCellControls"; import { useClickOutsideFocus } from "~/hooks/dom/useClickOutsideFocus"; import { MenuDots } from "~/components/common/MenuDots"; import { FlowCellImage } from "~/components/flow/FlowCellImage"; interface Props { id: INode['id']; to: string; title: string; image?: string; color?: string; text?: string; flow: FlowDisplay; canEdit?: boolean; onChangeCellView: (id: INode['id'], flow: FlowDisplay) => void; } const FlowCell: FC = ({ id, color, to, image, flow, text, title, canEdit = false, onChangeCellView, }) => { const withText = ((!!flow.display && flow.display !== 'single') || !image) && flow.show_description && !!text; const { hasDescription, setViewHorizontal, setViewVertical, setViewQuadro, setViewSingle, toggleViewDescription, } = useFlowCellControls(id, text, flow, onChangeCellView); const { isActive: isMenuActive, activate, ref, deactivate } = useClickOutsideFocus(); return (
{canEdit && !isMenuActive && (
)} {canEdit && isMenuActive && (
)} {withText && ( {title}}> {text!} )} {image && ( )} {!withText && (

{title}

)}
); }; export { FlowCell };