UNPKG

@tohuhono/puck-rich-text

Version:

A puck component for rich text editing made for OberonCMS

50 lines (49 loc) 1.09 kB
import { usePuck } from "@measured/puck"; const useSelected = (componentId) => { var _a, _b; const { appState: { ui: { itemSelector }, data }, dispatch } = usePuck(); if (!itemSelector) { return { isSelected: false, onChange: () => { } }; } const { index: destinationIndex, zone: destinationZone } = itemSelector; if (!destinationZone) { return { isSelected: false, onChange: () => { } }; } const item = destinationZone !== "default-zone" ? (_b = (_a = data.zones) == null ? void 0 : _a[destinationZone]) == null ? void 0 : _b[destinationIndex] : data.content[destinationIndex]; if ((item == null ? void 0 : item.props.id) !== componentId) { return { isSelected: false, onChange: () => { } }; } return { isSelected: true, onChange: (props) => dispatch({ type: "replace", destinationIndex, destinationZone, data: { props: { ...item.props, ...props }, type: item.type } }) }; }; export { useSelected };