PluginProbe
Hostinger Tools / 3.0.79
Hostinger Tools v3.0.79
3.0.79 3.0.78 3.0.77 3.0.76 3.0.75 3.0.74 3.0.73 3.0.72 3.0.71 3.0.70 3.0.69 3.0.68 3.0.67 3.0.66 1.8.1 1.8.2 1.8.3 1.9.1 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 All 110 releases
hostinger / vue-frontend / src / stores / settingsStore.ts

settingsStore.ts in Hostinger Tools 3.0.79, at vue-frontend/src/stores/settingsStore.ts

103 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { defineStore } from "pinia";
2 import { ref } from "vue";
3 import { toast } from "vue3-toastify";
4
5 import { generalDataRepo } from "@/repositories";
6 import { STORE_PERSISTENT_KEYS } from "@/types/enums";
7 import { SettingsData } from "@/types/models";
8 import { translate } from "@/utils/helpers";
9
10 export const useSettingsStore = defineStore(
11 "settingsStore",
12 () => {
13 const settingsData = ref<SettingsData | null>(null);
14
15 const fetchSettingsData = async () => {
16 const [{ data }, err] = await generalDataRepo.getSettings();
17
18 if (err) return;
19
20 settingsData.value = data;
21 };
22
23 const regenerateByPassCode = async () => {
24 const [{ data }, err] =
25 await generalDataRepo.getRegenerateByPassCode();
26
27 if (err) return;
28
29 toast.success(translate("bypass_link_reset_success"));
30
31 const tempSettingsData = settingsData.value;
32
33 settingsData.value = {
34 ...data,
35 currentWpVersion: tempSettingsData?.currentWpVersion || "",
36 phpVersion: tempSettingsData?.phpVersion || "",
37 newestWpVersion: tempSettingsData?.newestWpVersion || "",
38 isEligibleWwwRedirect:
39 tempSettingsData?.isEligibleWwwRedirect || false
40 };
41 };
42
43 const updateSettingsData = async (
44 settings: SettingsData
45 ): Promise<boolean> => {
46 const [{ data }, err] =
47 await generalDataRepo.postSettings(settings);
48
49 if (err) {
50 toast.error(translate("hostinger_tools_settings_error"));
51
52 return false;
53 }
54
55 const tempSettingsData = settingsData.value;
56
57 settingsData.value = {
58 ...data,
59 currentWpVersion: tempSettingsData?.currentWpVersion || "",
60 phpVersion: tempSettingsData?.phpVersion || "",
61 newestWpVersion: tempSettingsData?.newestWpVersion || "",
62 isEligibleWwwRedirect:
63 tempSettingsData?.isEligibleWwwRedirect || false
64 };
65
66 toast.success(translate("hostinger_tools_settings_updated"));
67
68 return true;
69 };
70
71 const clearCache = async (): Promise<boolean> => {
72 const [{ data }, err] = await generalDataRepo.deleteCache();
73
74 if (err) {
75 toast.error(translate("hostinger_tools_clear_cache_error"));
76
77 return false;
78 }
79
80 if (data?.skipped) {
81 toast.info(data.message);
82
83 return false;
84 }
85
86 toast.success(translate("hostinger_tools_clear_cache_success"));
87
88 return true;
89 };
90
91 return {
92 fetchSettingsData,
93 updateSettingsData,
94 regenerateByPassCode,
95 clearCache,
96 settingsData
97 };
98 },
99 {
100 persist: { key: STORE_PERSISTENT_KEYS.SETTINGS_STORE }
101 }
102 );
103