PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.2
Presto Player v2.2.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 4 years ago Preset.js 4 years ago Preview.js 3 years ago Style.js 2 years ago index.js 4 years ago
index.js
141 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 styled from "@emotion/styled";
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 const PresetWrap = styled.div`
48 display: flex;
49 flex-wrap: wrap;
50 justify-content: space-between;
51 `;
52
53 if (loading) {
54 return (
55 <div className="presto-settings__loading">
56 <Spinner />
57 </div>
58 );
59 }
60
61 return (
62 <>
63 {presets.length ? (
64 <p>
65 {__(
66 "Select a audio configuration preset, or add your own.",
67 "presto-player"
68 )}
69 </p>
70 ) : (
71 ""
72 )}
73
74 <BaseControl>
75 <PresetWrap>
76 {(presets || []).length
77 ? presets.map((preset, i) => {
78 return (
79 <Preset
80 setPreset={setPreset}
81 index={i}
82 isActive={attributes?.preset === preset.id}
83 preset={preset}
84 key={preset.id}
85 onEdit={() => {
86 setName(preset.name);
87 setPresetData(preset);
88 setModal("edit");
89 }}
90 remove={removePreset}
91 />
92 );
93 })
94 : __(
95 "No style presets. You can create a new style by clicking 'Add New Style'.",
96 "presto-plugin"
97 )}
98 </PresetWrap>
99 </BaseControl>
100 <BaseControl>
101 <Button
102 isPrimary
103 data-cy="add-new-preset"
104 onClick={() => {
105 if (!prestoPlayer?.isPremium) {
106 dispatch("presto-player/player").setProModal(true);
107 return;
108 }
109 openModal("new");
110 }}
111 >
112 {__("Add New Preset", "presto-player")}
113 </Button>
114 {!prestoPlayer?.isPremium && <ProBadge />}
115 </BaseControl>
116 {modal == "new" && (
117 <EditPreset
118 closeModal={closeModal}
119 addPreset={addPreset}
120 type="new"
121 onSave={setPreset}
122 attributes={attributes}
123 />
124 )}
125 {modal == "edit" && (
126 <EditPreset
127 closeModal={closeModal}
128 addPreset={addPreset}
129 updatePreset={updatePreset}
130 type="edit"
131 preset={presetData}
132 name={name}
133 attributes={attributes}
134 />
135 )}
136 </>
137 );
138 }
139
140 export default withNotices(PlayerPresets);
141