PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 2.7.2
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v2.7.2
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / Gutenberg / src / embedpress / edit.js
embedpress / Gutenberg / src / embedpress Last commit date
edit.js 5 years ago editor.scss 5 years ago index.js 5 years ago index.php 5 years ago style.scss 5 years ago
edit.js
116 lines
1 /**
2 * Internal dependencies
3 */
4 import EmbedControls from '../common/embed-controls';
5 import EmbedLoading from '../common/embed-loading';
6 import EmbedPlaceholder from '../common/embed-placeholder';
7 import EmbedWrap from '../common/embed-wrap';
8
9 /**
10 * WordPress dependencies
11 */
12 const {__} = wp.i18n;
13 import {embedPressIcon} from '../common/icons';
14 const {TextControl, PanelBody} = wp.components;
15 const { InspectorControls } = wp.blockEditor;
16 const { Fragment } = wp.element;
17
18 export default function EmbedPress({attributes, className, setAttributes}){
19 const {url, editingURL, fetching, cannotEmbed, interactive, embedHTML, height, width} = attributes;
20
21 function switchBackToURLInput() {
22 setAttributes( {editingURL: true});
23 }
24 function onLoad() {
25 setAttributes( {fetching: false});
26 }
27
28 function embed(event) {
29 if (event) event.preventDefault();
30 if (url) {
31 // send api request to get iframe url
32 let fetchData = async (url) => {
33 setAttributes({
34 fetching: true
35 });
36 return await fetch(`${embedpressObj.site_url}/wp-json/embedpress/v1/oembed/embedpress?url=${url}&width=${width}&height=${height}`).then(response => response.json());
37 }
38 fetchData(url).then(data => {
39 setAttributes({
40 fetching: false
41 });
42 if ((data.data && data.data.status === 404) || !data.embed){
43 setAttributes({
44 cannotEmbed: true,
45 editingURL: true,
46 })
47 }else{
48 setAttributes({
49 embedHTML: data.embed,
50 cannotEmbed: false,
51 editingURL: false,
52 });
53 }
54 });
55
56
57 } else {
58 setAttributes({
59 cannotEmbed: true,
60 editingURL: true
61 })
62 }
63 }
64 return (
65 <Fragment>
66 <InspectorControls>
67 <PanelBody title={__("Customize Embedded Link")}>
68 <TextControl
69 label={__("Width")}
70 value={ width }
71 onChange={ ( width ) => setAttributes( { width } ) }
72 />
73 <TextControl
74 label={__("Height")}
75 value={ height }
76 onChange={ ( height ) => setAttributes( { height } ) }
77 />
78 </PanelBody>
79 </InspectorControls>
80
81 { (!embedHTML || editingURL) && <EmbedPlaceholder
82 label={__('EmbedPress - Embed anything from 100+ sites')}
83 onSubmit={embed}
84 value={url}
85 cannotEmbed={cannotEmbed}
86 onChange={(event) => setAttributes({url: event.target.value})}
87 icon={embedPressIcon}
88 DocTitle={__('Learn more about EmbedPress')}
89 docLink={'https://embedpress.com/docs/'}
90 /> }
91
92 {(embedHTML && !editingURL) && <div className={className}>
93 {fetching ? <EmbedLoading/> : null}
94 <EmbedWrap style={{display: fetching ? 'none' : ''}} dangerouslySetInnerHTML={{
95 __html: embedHTML
96 }}></EmbedWrap>
97
98 <div
99 className="block-library-embed__interactive-overlay"
100 onMouseUp={ setAttributes({interactive: true}) }
101 />
102
103 <EmbedControls
104 showEditButton={embedHTML && !cannotEmbed}
105 switchBackToURLInput={switchBackToURLInput}
106 />
107 </div>}
108
109 </Fragment>
110
111 );
112
113 }
114
115
116