Sha256: 285f515a31b77c31206217292c01f8dd62919b2e1d3208753ea9cc1a889730e9
Contents?: true
Size: 911 Bytes
Versions: 1
Compression:
Stored size: 911 Bytes
Contents
import * as Tree from "./tree"; import { visibleChildNodes } from "./usePageTree"; import usePageTreeContext from "./usePageTreeContext"; type Props = { id: Tree.Id; }; export default function CollapseArrow({ id }: Props) { const { state, dispatch } = usePageTreeContext(); const node = state.nodes[id]; const classNames = ["collapse fa-solid fa-caret-right"]; classNames.push(node.collapsed ? "collapsed" : "open"); const handleClick = (evt: React.MouseEvent) => { evt.stopPropagation(); dispatch({ type: "setCollapsed", id: id, payload: !node.collapsed }); }; const preventDrag = (evt: React.MouseEvent | React.TouchEvent) => { evt.stopPropagation(); }; if (!("root" in node) && visibleChildNodes(state, id).length > 0) { return ( <i className={classNames.join(" ")} onMouseDown={preventDrag} onClick={handleClick} /> ); } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pages_core-3.15.5 | app/javascript/components/PageTree/CollapseArrow.tsx |