[ SYSTEM ]: Linux wordpress 6.1.0-44-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
presto-player
/
src
/
admin
/
blocks
/
blocks
/
reusable-edit
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 block.json
431 B
SET
[ EDIT ]
|
[ DEL ]
📄 edit.js
1,958 B
SET
[ EDIT ]
|
[ DEL ]
📄 index.js
355 B
SET
[ EDIT ]
|
[ DEL ]
📄 save.js
257 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: edit.js
/** @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 MediaProviders from "../../shared/MediaProviders"; import { useContext } from "@wordpress/element"; import EditContext from "../reusable-display/context"; import { createBlock } from "@wordpress/blocks"; export default ({ clientId, isSelected, context }) => { const { selectBlock, insertBlock } = 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}> <MediaProviders sync={false} onSelect={(type) => { insertBlock(createBlock(`presto-player/${type}`), 0, clientId); }} onSelectMedia={false} /> <div {...innerBlocksProps} /> </div> ); } return <div {...innerBlocksProps} />; };