All files / src/hooks usePreferencesDialog.ts

7.14% Statements 1/14
100% Branches 0/0
0% Functions 0/2
7.14% Lines 1/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38          4x                                                                
import React from "react";
import { useTranslation } from "react-i18next";
import { toast } from "react-toastify";
import useUserStore from "@/store/useUserStore";
 
const usePreferencesDialog = (onClose: () => void) => {
  const { i18n, t } = useTranslation();
  const { accentColor, setAccentColor, fontStyle, setFontStyle } = useUserStore();
  const accentColors: string[] = ["#0177d2", "#01b4e4", "#01d277", "#d27701", "#d40242", "#805be7"];
 
  const [selectedColor, setSelectedColor] = React.useState<string>(accentColor);
  const [selectedLanguage, setSelectedLanguage] = React.useState<string>(i18n.language);
  const [selectedFontStyle, setSelectedFontStyle] = React.useState<string>(fontStyle);
 
  const handleUpdatePreferences = () => {
    setAccentColor(selectedColor);
    setFontStyle(selectedFontStyle);
    i18n.changeLanguage(selectedLanguage);
    onClose();
    toast(t("preference_saved_message"));
  };
 
  return {
    accentColors,
    t,
    accentColor,
    selectedColor,
    setSelectedColor,
    selectedLanguage,
    setSelectedLanguage,
    selectedFontStyle,
    setSelectedFontStyle,
    handleUpdatePreferences,
  };
};
 
export default usePreferencesDialog;