PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
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 / shared / audioPresets / index.js
presto-player / src / admin / blocks / shared / audioPresets Last commit date
Behavior.js 2 years ago Controls.js 4 years ago Edit.js 1 week ago Edit.scss 1 week ago Preset.js 4 years ago Preview.js 3 years ago Style.js 1 week ago Style.scss 1 week ago index.js 1 week ago index.scss 1 week ago
index.js
135 lines
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5 const { withNotices, BaseControl, Spinner, Button } = wp.components;
6 const { useState, useEffect } = wp.element;
7 const { useSelect, dispatch } = wp.data;
8
9 import ProBadge from "@/admin/blocks/shared/components/ProBadge";
10 import EditPreset from "./Edit";
11 import Preset from "./Preset";
12 import "./index.scss";
13
14 function PlayerPresets({ attributes, setAttributes }) {
15 // modal
16 const [modal, setModal] = useState(false);
17 const openModal = (type) => setModal(type);
18 const closeModal = () => setModal(false);
19 const [presetData, setPresetData] = useState(null);
20 const [name, setName] = useState(null);
21
22 // preset data
23 // preset data
24 const { presets, loading } = useSelect((select) => {
25 return {
26 presets: select("presto-player/player").getAudioPresets(),
27 loading: select("presto-player/player").isResolving("getAudioPresets"),
28 };
29 });
30
31 // preset actions
32 const addPreset = (preset) => {
33 dispatch("presto-player/player").addAudioPreset(preset);
34 };
35 const updatePreset = (preset) => {
36 dispatch("presto-player/player").updateAudioPreset(preset);
37 };
38 const removePreset = (preset) => {
39 dispatch("presto-player/player").removeAudioPreset(preset);
40 };
41
42 // set this preset id
43 const setPreset = (preset) => {
44 setAttributes({ preset: preset.id });
45 };
46
47 if (loading) {
48 return (
49 <div className="presto-settings__loading">
50 <Spinner />
51 </div>
52 );
53 }
54
55 return (
56 <>
57 {presets.length ? (
58 <p>
59 {__(
60 "Select a audio configuration preset, or add your own.",
61 "presto-player"
62 )}
63 </p>
64 ) : (
65 ""
66 )}
67
68 <BaseControl>
69 <div className="presto-audio-preset-wrap">
70 {(presets || []).length
71 ? presets.map((preset, i) => {
72 return (
73 <Preset
74 setPreset={setPreset}
75 index={i}
76 isActive={attributes?.preset === preset.id}
77 preset={preset}
78 key={preset.id}
79 onEdit={() => {
80 setName(preset.name);
81 setPresetData(preset);
82 setModal("edit");
83 }}
84 remove={removePreset}
85 />
86 );
87 })
88 : __(
89 "No style presets. You can create a new style by clicking 'Add New Style'.",
90 "presto-plugin"
91 )}
92 </div>
93 </BaseControl>
94 <BaseControl>
95 <Button
96 isPrimary
97 data-cy="add-new-preset"
98 onClick={() => {
99 if (!prestoPlayer?.isPremium) {
100 dispatch("presto-player/player").setProModal(true);
101 return;
102 }
103 openModal("new");
104 }}
105 >
106 {__("Add New Preset", "presto-player")}
107 </Button>
108 {!prestoPlayer?.isPremium && <ProBadge />}
109 </BaseControl>
110 {modal == "new" && (
111 <EditPreset
112 closeModal={closeModal}
113 addPreset={addPreset}
114 type="new"
115 onSave={setPreset}
116 attributes={attributes}
117 />
118 )}
119 {modal == "edit" && (
120 <EditPreset
121 closeModal={closeModal}
122 addPreset={addPreset}
123 updatePreset={updatePreset}
124 type="edit"
125 preset={presetData}
126 name={name}
127 attributes={attributes}
128 />
129 )}
130 </>
131 );
132 }
133
134 export default withNotices(PlayerPresets);
135