@wordpress/block-library
Version:
Block library for the WordPress editor.
72 lines (71 loc) • 2.25 kB
JavaScript
// packages/block-library/src/read-more/edit.js
import {
InspectorControls,
RichText,
useBlockProps
} from "@wordpress/block-editor";
import {
ToggleControl,
__experimentalToolsPanel as ToolsPanel,
__experimentalToolsPanelItem as ToolsPanelItem
} from "@wordpress/components";
import { createBlock, getDefaultBlockName } from "@wordpress/blocks";
import { __ } from "@wordpress/i18n";
import { useToolsPanelDropdownMenuProps } from "../utils/hooks";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
function ReadMore({
attributes: { content, linkTarget },
setAttributes,
insertBlocksAfter
}) {
const blockProps = useBlockProps();
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
return /* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(InspectorControls, { children: /* @__PURE__ */ jsx(
ToolsPanel,
{
label: __("Settings"),
resetAll: () => setAttributes({ linkTarget: "_self" }),
dropdownMenuProps,
children: /* @__PURE__ */ jsx(
ToolsPanelItem,
{
label: __("Open in new tab"),
isShownByDefault: true,
hasValue: () => linkTarget !== "_self",
onDeselect: () => setAttributes({ linkTarget: "_self" }),
children: /* @__PURE__ */ jsx(
ToggleControl,
{
__nextHasNoMarginBottom: true,
label: __("Open in new tab"),
onChange: (value) => setAttributes({
linkTarget: value ? "_blank" : "_self"
}),
checked: linkTarget === "_blank"
}
)
}
)
}
) }),
/* @__PURE__ */ jsx(
RichText,
{
identifier: "content",
tagName: "a",
"aria-label": __("\u201CRead more\u201D link text"),
placeholder: __("Read more"),
value: content,
onChange: (newValue) => setAttributes({ content: newValue }),
__unstableOnSplitAtEnd: () => insertBlocksAfter(createBlock(getDefaultBlockName())),
withoutInteractiveFormatting: true,
...blockProps
}
)
] });
}
export {
ReadMore as default
};
//# sourceMappingURL=edit.js.map