PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.1
Presto Player v4.3.1
4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / blocks / hooks / apply-popup-button-trigger-ui.js
presto-player / src / admin / blocks / hooks Last commit date
apply-popup-button-trigger-ui.js 10 months ago apply-popup-image-trigger-placeholder.js 10 months ago apply-popup-preview-toggle.js 10 months ago
apply-popup-button-trigger-ui.js
66 lines
1 import { addFilter } from "@wordpress/hooks";
2 import { createHigherOrderComponent } from "@wordpress/compose";
3 import { BlockControls } from "@wordpress/block-editor";
4 import { ToolbarButton, ToolbarGroup } from "@wordpress/components";
5 import { __ } from "@wordpress/i18n";
6 import { copySmall, closeSmall } from "@wordpress/icons";
7 import Context from "../blocks/popup/context/context";
8
9 /**
10 * Higher order component to add popup trigger toggle to core/button blocks in popup context
11 */
12 const WithPopupButtonTriggerUI = createHigherOrderComponent((BlockEdit) => {
13 return (props) => {
14 const {
15 name,
16 attributes: { prestoPopupTrigger },
17 setAttributes,
18 } = props;
19
20 // Only apply to core/button blocks
21 if (name !== "core/button") {
22 return <BlockEdit {...props} />;
23 }
24
25 return (
26 <Context.Consumer>
27 {(contextValue) => {
28 return (
29 <>
30 <BlockEdit {...props} />
31
32 {/* Only show the UI if we're in a popup context */}
33 {contextValue && (
34 <BlockControls>
35 <ToolbarGroup>
36 <ToolbarButton
37 icon={prestoPopupTrigger ? closeSmall : copySmall}
38 onClick={() =>
39 setAttributes({
40 prestoPopupTrigger: !prestoPopupTrigger,
41 })
42 }
43 aria-pressed={prestoPopupTrigger}
44 >
45 {prestoPopupTrigger
46 ? __("Remove as Popup Trigger", "presto-player")
47 : __("Use as Popup Trigger", "presto-player")}
48 </ToolbarButton>
49 </ToolbarGroup>
50 </BlockControls>
51 )}
52 </>
53 );
54 }}
55 </Context.Consumer>
56 );
57 };
58 }, "withPopupButtonTriggerUI");
59
60 // Apply the filter to all block edits
61 addFilter(
62 "editor.BlockEdit",
63 "presto-player/popup-button-trigger-ui",
64 WithPopupButtonTriggerUI
65 );
66