import React, { useState } from "react";
import { useHistory } from "react-router";
import { useTranslation } from "react-i18next";
import { useUser, userService } from "@/services/user";
import ChangePasswordDialog from "./ChangePasswordDialog";
import ChangeAvatarDialog from "./ChangeAvatarDialog";
import ChangeNicknameDialog from "./ChangeNicknameDialog";
import ConfirmDialog from "../common/dailog/ConfirmDialog";
import Card from "../common/Card";
import "./index.css";
const SettingsPage: React.FC = (_) => {
  const { i18n, t } = useTranslation();
  const user = useUser();
  const history = useHistory();
  const [dialog, setDialog] = useState<
    null | "changepassword" | "changeavatar" | "changenickname" | "logout"
  >(null);
  const language = i18n.language.slice(0, 2);
  return (
    <>
      
        {user ? (
          
            
              {t("settings.subheaders.account")}
            
             setDialog("changeavatar")}
            >
              {t("settings.changeAvatar")}
            
             setDialog("changenickname")}
            >
              {t("settings.changeNickname")}
            
             setDialog("changepassword")}
            >
              {t("settings.changePassword")}
            
             {
                setDialog("logout");
              }}
            >
              {t("settings.logout")}
            
          
        ) : null}
        
          
            {t("settings.subheaders.customization")}
          
          
            
              {t("settings.languagePrimary")}
              
                {t("settings.languageSecondary")}
              
             
            
              
            
           
        
       
      {(() => {
        switch (dialog) {
          case "changepassword":
            return  setDialog(null)} />;
          case "logout":
            return (
               setDialog(null)}
                open
                onConfirm={() => {
                  void userService.logout().then(() => {
                    history.push("/");
                  });
                }}
              />
            );
          case "changeavatar":
            return  setDialog(null)} />;
          case "changenickname":
            return  setDialog(null)} />;
          default:
            return null;
        }
      })()}
    >
  );
};
export default SettingsPage;