import styled from "styled-components"; import type { CanvasHandleImageEditorProps } from "../handler/interfaces"; import { FaEye, FaLock } from "react-icons/fa"; import { NamePlate } from "./layer-name"; import type { ImageEditor } from "../handler/image-editor"; const Item = styled.div<{ $selected: boolean }>` width: 240px; height: 30px; border: 1px solid var(--secondary-color); display: flex; flex-direction: row; ${({ $selected }) => $selected && ` background-color: var(--secondary-color); `} `; const Img = styled.img` margin: 5px; max-width: 25px; max-height: 25px; `; const Icon = styled.span` padding: 7px 5px; cursor: pointer; `; export function LayerItem({ image, handler }: CanvasHandleImageEditorProps) { const selectLayer = (image: ImageEditor, ctrl: boolean) => { if (!ctrl) { const selected = handler.selected.filter((e) => e !== image.id); for (const sel of selected) { handler.setSelect(sel, false); } } image.toggleSelected(); }; return ( { ev.stopPropagation(); ev.preventDefault(); selectLayer(image, ev.ctrlKey); }} > { ev.stopPropagation(); ev.preventDefault(); image.setVisible(!image.visible); }} > { ev.stopPropagation(); ev.preventDefault(); selectLayer(image, ev.ctrlKey); }} src={image.url} alt={image.id} /> { ev.stopPropagation(); ev.preventDefault(); image.setLock(!image.locked); }} > ); }