PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.2
Presto Player v4.3.2
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 / 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 3 weeks ago Edit.scss 3 weeks ago Preset.js 4 years ago Preview.js 3 years ago Style.js 3 weeks ago Style.scss 3 weeks ago index.js 3 weeks ago index.scss 3 weeks 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