PluginProbe ʕ •ᴥ•ʔ
Presto Player / 3.0.0-beta1
Presto Player v3.0.0-beta1
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 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 / settings / components / CodeMirror.js
presto-player / src / admin / settings / components Last commit date
CTA.js 5 years ago CheckboxControl.js 5 years ago CodeMirror.js 2 years ago ColorPicker.js 5 years ago ComboboxControl.js 3 years ago Disabled.js 5 years ago Fields.js 5 years ago Group.js 3 years ago Groups.js 5 years ago Integration.js 5 years ago Loading.js 5 years ago Media.js 3 years ago Notices.js 3 years ago NullView.js 5 years ago Page.js 5 years ago SaveButton.js 3 years ago SelectControl.js 5 years ago TextControl.js 5 years ago ToggleControl.js 5 years ago
CodeMirror.js
64 lines
1 /** @jsx jsx */
2 import { css, jsx } from "@emotion/core";
3 import { BaseControl } from "@wordpress/components";
4 import { useEffect, useRef, useState } from "@wordpress/element";
5 import classNames from "classnames";
6
7 export default ({ option, value, className, disabled, onChange }) => {
8 const [codeMirror, setCodeMirror] = useState(null);
9
10 const handleChange = (instance) => {
11 if (disabled) {
12 return;
13 }
14 onChange(instance.getValue());
15 };
16
17 const textRef = useRef();
18
19 useEffect(() => {
20 // return if the code mirror instance is already set
21 if (!wp?.CodeMirror || codeMirror) {
22 return;
23 }
24 const cmInstance = wp.CodeMirror.fromTextArea(textRef.current, {
25 type: "text/css",
26 lineNumbers: true,
27 });
28 cmInstance.on("change", handleChange);
29 setCodeMirror(cmInstance);
30 }, []);
31
32 // set an initial player css value for the code mirror instance
33 useEffect(() => {
34 if (!wp?.CodeMirror || !codeMirror) {
35 return;
36 }
37 // return if the value is empty, or if the codeMirror instance already has a value
38 if (!value || codeMirror.getValue()) {
39 return;
40 }
41 codeMirror.setValue(value);
42 }, [value]);
43
44 return (
45 <div className={classNames(className, "presto-settings__setting")}>
46 <BaseControl
47 css={css`
48 .CodeMirror {
49 height: 200px;
50 border: 1px solid #e3e3e3;
51 border-radius: 4px;
52 }
53 `}
54 label={option?.name}
55 help={option?.help}
56 >
57 <textarea ref={textRef} rows="5" disabled>
58 {value}
59 </textarea>
60 </BaseControl>
61 </div>
62 );
63 };
64