@tohuhono/puck-rich-text
Version:
A puck component for rich text editing made for OberonCMS
50 lines (49 loc) • 1.09 kB
JavaScript
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
};