/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import React from "react"; import { Draggable } from "react-beautiful-dnd"; import { useTranslation } from "react-i18next"; import { Widget, WidgetType } from "../models"; import { WidgetTreeItemData } from "../services/OrderingService"; import WidgetTreeItemContent from "./WidgetTreeItemContent"; import WidgetTreeSectionDivider from "./WidgetTreeSectionDivider"; import styles from "./WidgetTreeItem.module.scss"; interface WidgetTreeItemProps { node: WidgetTreeItemData; isDropDisabled?: boolean; canMoveUp?: boolean; canMoveDown?: boolean; onDelete: (widget: Widget) => void; onDuplicate: (widget: Widget) => void; onMove: (sourceIndex: number, destinationIndex: number) => void; } const WidgetTreeItem = (props: WidgetTreeItemProps) => { const { t } = useTranslation(); const [isDragging, setIsDragging] = React.useState(false); const node = props.node; const widget = node.widget; const onMoveUp = props.canMoveUp ? () => props.onMove(node.dragIndex, node.dragIndex - 1) : undefined; const onMoveDown = props.canMoveDown ? () => props.onMove(node.dragIndex, node.dragIndex + 1) : undefined; return (