@wordpress/block-library
Version:
Block library for the WordPress editor.
77 lines (76 loc) • 2.79 kB
JavaScript
// packages/block-library/src/navigation/edit/placeholder/index.js
import { Placeholder, Button, Spinner } from "@wordpress/components";
import { __ } from "@wordpress/i18n";
import { navigation, Icon } from "@wordpress/icons";
import { speak } from "@wordpress/a11y";
import { useEffect } from "@wordpress/element";
import useNavigationEntities from "../../use-navigation-entities";
import PlaceholderPreview from "./placeholder-preview";
import NavigationMenuSelector from "../navigation-menu-selector";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
function NavigationPlaceholder({
isSelected,
currentMenuId,
clientId,
canUserCreateNavigationMenus = false,
isResolvingCanUserCreateNavigationMenus,
onSelectNavigationMenu,
onSelectClassicMenu,
onCreateEmpty
}) {
const { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();
useEffect(() => {
if (!isSelected) {
return;
}
if (isResolvingMenus) {
speak(__("Loading navigation block setup options\u2026"));
}
if (hasResolvedMenus) {
speak(__("Navigation block setup options ready."));
}
}, [hasResolvedMenus, isResolvingMenus, isSelected]);
const isResolvingActions = isResolvingMenus && isResolvingCanUserCreateNavigationMenus;
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Placeholder, { className: "wp-block-navigation-placeholder", children: [
/* @__PURE__ */ jsx(PlaceholderPreview, { isVisible: !isSelected }),
/* @__PURE__ */ jsx(
"div",
{
"aria-hidden": !isSelected ? true : void 0,
className: "wp-block-navigation-placeholder__controls",
children: /* @__PURE__ */ jsxs("div", { className: "wp-block-navigation-placeholder__actions", children: [
/* @__PURE__ */ jsxs("div", { className: "wp-block-navigation-placeholder__actions__indicator", children: [
/* @__PURE__ */ jsx(Icon, { icon: navigation }),
" ",
__("Navigation")
] }),
/* @__PURE__ */ jsx("hr", {}),
isResolvingActions && /* @__PURE__ */ jsx(Spinner, {}),
/* @__PURE__ */ jsx(
NavigationMenuSelector,
{
currentMenuId,
clientId,
onSelectNavigationMenu,
onSelectClassicMenu
}
),
/* @__PURE__ */ jsx("hr", {}),
canUserCreateNavigationMenus && /* @__PURE__ */ jsx(
Button,
{
__next40pxDefaultSize: true,
variant: "tertiary",
onClick: onCreateEmpty,
children: __("Start empty")
}
)
] })
}
)
] }) });
}
export {
NavigationPlaceholder as default
};
//# sourceMappingURL=index.js.map