PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.2.2
Presto Player v2.2.2
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 / settings.js
presto-player / src / admin / settings Last commit date
components 3 years ago pages 3 years ago scss 5 years ago store 5 years ago app.js 3 years ago entities.js 3 years ago index.js 3 years ago routes.js 3 years ago settings.js 4 years ago settings.scss 5 years ago util.js 5 years ago
settings.js
82 lines
1 const { __ } = wp.i18n;
2 const { dispatch, useSelect } = wp.data;
3 import apiFetch from "@/shared/services/fetch-wp";
4 const root = prestoPlayer.root + prestoPlayer.wpVersionString;
5
6 // raw settings
7 export function getSettings() {
8 return useSelect((select) => {
9 return select("presto-player/settings").settings();
10 });
11 }
12
13 export function filterSettings(settings) {
14 const keys = [
15 "presto_player_analytics",
16 "presto_player_presets",
17 "presto_player_branding",
18 "presto_player_bunny_storage_zones",
19 "presto_player_bunny_pull_zones",
20 "presto_player_bunny_stream",
21 "presto_player_bunny_stream_public",
22 "presto_player_bunny_stream_private",
23 "presto_player_google_analytics",
24 "presto_player_general",
25 "presto_player_uninstall",
26 "presto_player_performance",
27 "presto_player_mailchimp",
28 "presto_player_mailerlite",
29 "presto_player_youtube",
30 "presto_player_activecampaign",
31 "presto_player_fluentcrm",
32 "presto_player_audio_presets",
33 ];
34
35 let settingsToSet = {};
36 // important - if settings are returned as null (invalid) we need to reset
37 keys.forEach((key) => {
38 settingsToSet[key] = settings[key] ? settings[key] : {};
39 });
40 return settingsToSet;
41 }
42
43 // get settings and set in store
44 export function fetchSettings() {
45 return apiFetch({
46 url: `${root}settings/`,
47 }).then((settings) => {
48 dispatch("presto-player/settings").setSettings(filterSettings(settings));
49 return settings;
50 });
51 }
52
53 export function saveSettings(settings) {
54 dispatch("presto-player/settings").setSaving(true);
55 apiFetch({
56 url: `${root}settings/`,
57 method: "POST",
58 data: settings,
59 })
60 .then((settings) => {
61 dispatch("presto-player/settings").setSettings(filterSettings(settings));
62 dispatch("presto-player/settings").addNotice({
63 content: __("Settings saved.", "presto-player"),
64 });
65 })
66 .catch((e) => {
67 dispatch("presto-player/settings").addNotice({
68 content: e.message ? e.message : "Something went wrong.",
69 className: "is-snackbar-error",
70 });
71 })
72 .finally(() => {
73 dispatch("presto-player/settings").setSaving(false);
74 });
75 }
76
77 // get an option with a fallback
78 export function get_option(name, fallback) {
79 const settings = getSettings();
80 return settings?.[name] ? settings[name] : fallback;
81 }
82