| Server IP : 193.146.211.90 / Your IP : 10.85.6.55 Web Server : Apache System : Linux wordpress-gti-69dcdb54f7-n4wdq 6.11.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Fri, 15 Nov 2024 15:35:07 +0000 x86_64 User : 1001 ( 1001) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/presto-player/src/admin/blocks/blocks/reusable-edit/ |
Upload File : |
/** @jsx jsx */
import { css, jsx } from "@emotion/core";
import {
store as blockEditorStore,
useBlockProps,
useInnerBlocksProps,
} from "@wordpress/block-editor";
import { select, useSelect, useDispatch } from "@wordpress/data";
import { useEffect } from "@wordpress/element";
import { __ } from "@wordpress/i18n";
import ProvidersPlaceholder from "../../shared/ProvidersPlaceholder/ProvidersPlaceholder";
import { useContext } from "@wordpress/element";
import EditContext from "../reusable-display/context";
export default ({ clientId, isSelected, context }) => {
const { selectBlock } = useDispatch(blockEditorStore);
const { setTemplateValidity } = useDispatch(blockEditorStore);
const { isEditing } = useContext(EditContext);
const innerBlocks = useSelect(
(select) => select(blockEditorStore).getBlock(clientId).innerBlocks
);
const blockProps = useBlockProps();
const innerBlocksProps = useInnerBlocksProps(blockProps, {
templateLock: isEditing ? "all" : false, // lock the template if we are in the editing context.
renderAppender: false,
});
setTemplateValidity(true);
useEffect(() => {
// if this is selected, and we are in the playlist context, select the inner block.
if (isSelected && context["presto-player/playlist-media-id"]) {
const blockOrder = select(blockEditorStore).getBlockOrder(clientId);
const firstInnerBlockClientId = blockOrder[0];
if (firstInnerBlockClientId) {
selectBlock(firstInnerBlockClientId);
}
}
}, [isSelected]);
if (!innerBlocks?.length) {
return (
<div {...blockProps}>
<ProvidersPlaceholder clientId={clientId} />
<div {...innerBlocksProps} />
</div>
);
}
return <div {...innerBlocksProps} />;
};