PluginProbe ʕ •ᴥ•ʔ
Presto Player / 1.5.13
Presto Player v1.5.13
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 / settings.js
presto-player / src / admin / settings Last commit date
components 5 years ago pages 5 years ago scss 5 years ago store 5 years ago app.js 5 years ago index.js 5 years ago routes.js 5 years ago settings.js 5 years ago settings.scss 5 years ago util.js 5 years ago
settings.js
81 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 ];
33
34 let settingsToSet = {};
35 // important - if settings are returned as null (invalid) we need to reset
36 keys.forEach((key) => {
37 settingsToSet[key] = settings[key] ? settings[key] : {};
38 });
39 return settingsToSet;
40 }
41
42 // get settings and set in store
43 export function fetchSettings() {
44 return apiFetch({
45 url: `${root}settings/`,
46 }).then((settings) => {
47 dispatch("presto-player/settings").setSettings(filterSettings(settings));
48 return settings;
49 });
50 }
51
52 export function saveSettings(settings) {
53 dispatch("presto-player/settings").setSaving(true);
54 apiFetch({
55 url: `${root}settings/`,
56 method: "POST",
57 data: settings,
58 })
59 .then((settings) => {
60 dispatch("presto-player/settings").setSettings(filterSettings(settings));
61 dispatch("presto-player/settings").addNotice({
62 content: __("Settings saved.", "presto-player"),
63 });
64 })
65 .catch((e) => {
66 dispatch("presto-player/settings").addNotice({
67 content: e.message ? e.message : "Something went wrong.",
68 className: "is-snackbar-error",
69 });
70 })
71 .finally(() => {
72 dispatch("presto-player/settings").setSaving(false);
73 });
74 }
75
76 // get an option with a fallback
77 export function get_option(name, fallback) {
78 const settings = getSettings();
79 return settings?.[name] ? settings[name] : fallback;
80 }
81