mirror of
https://github.com/neosubhamoy/neodlp.git
synced 2026-03-22 13:45:50 +05:30
63 lines
2.3 KiB
TypeScript
63 lines
2.3 KiB
TypeScript
import { toast } from "sonner";
|
|
import { useResetSettings, useSaveSettingsKey } from "@/services/mutations";
|
|
import { useSettingsPageStatesStore } from "@/services/store";
|
|
import { useQueryClient } from "@tanstack/react-query";
|
|
import { invoke } from "@tauri-apps/api/core";
|
|
|
|
export function useSettings() {
|
|
const queryClient = useQueryClient();
|
|
const setSettingsKey = useSettingsPageStatesStore(state => state.setSettingsKey);
|
|
const resetSettingsState = useSettingsPageStatesStore(state => state.resetSettings);
|
|
const triggerFormReset = useSettingsPageStatesStore(state => state.triggerFormReset);
|
|
const settingsKeySaver = useSaveSettingsKey();
|
|
const settingsReseter = useResetSettings();
|
|
|
|
const saveSettingsKey = (key: string, value: unknown) => {
|
|
settingsKeySaver.mutate({ key, value }, {
|
|
onSuccess: (data) => {
|
|
setSettingsKey(key, value);
|
|
console.log("Settings key saved successfully:", data);
|
|
queryClient.invalidateQueries({ queryKey: ["settings"] });
|
|
},
|
|
onError: (error) => {
|
|
console.error("Error saving settings key:", error);
|
|
queryClient.invalidateQueries({ queryKey: ["settings"] });
|
|
toast.error("Failed to update settings", {
|
|
description: `Failed to update ${key}`,
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
const resetSettings = () => {
|
|
settingsReseter.mutate(undefined, {
|
|
onSuccess: async () => {
|
|
try {
|
|
await invoke("reset_config");
|
|
resetSettingsState();
|
|
triggerFormReset();
|
|
console.log("Settings reset successfully");
|
|
queryClient.invalidateQueries({ queryKey: ["settings"] });
|
|
toast.success("Settings reset successfully", {
|
|
description: "All settings have been reset to default.",
|
|
});
|
|
} catch (error) {
|
|
console.error("Error resetting settings:", error);
|
|
toast.error("Failed to reset settings", {
|
|
description: "Failed to reset settings to default.",
|
|
});
|
|
return;
|
|
}
|
|
},
|
|
onError: (error) => {
|
|
console.error("Error resetting settings:", error);
|
|
toast.error("Failed to reset settings", {
|
|
description: "Failed to reset settings to default.",
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
return { saveSettingsKey, resetSettings };
|
|
}
|