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)}
onConfirm={() => {
void userService.logout().then(() => {
history.push("/");
});
}}
/>
);
case "changeavatar":
return setDialog(null)} />;
case "changenickname":
return setDialog(null)} />;
default:
return null;
}
})()}
>
);
};
export default SettingsPage;