aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-07-20 20:44:15 +0800
committercrupest <crupest@outlook.com>2023-07-20 20:44:15 +0800
commit0e183074b326cf04a23ae1f1ba8dcc56166df485 (patch)
tree87963dbe54b018ee0573cd77e674d32c23d8ba7f /FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx
parentadc91a81fe53fdbc3d63065baa0b56862c104824 (diff)
downloadtimeline-0e183074b326cf04a23ae1f1ba8dcc56166df485.tar.gz
timeline-0e183074b326cf04a23ae1f1ba8dcc56166df485.tar.bz2
timeline-0e183074b326cf04a23ae1f1ba8dcc56166df485.zip
...
Diffstat (limited to 'FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx')
-rw-r--r--FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx34
1 files changed, 34 insertions, 0 deletions
diff --git a/FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx b/FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx
new file mode 100644
index 00000000..7ba12de8
--- /dev/null
+++ b/FrontEnd/src/pages/setting/ChangeNicknameDialog.tsx
@@ -0,0 +1,34 @@
+import { getHttpUserClient } from "@/http/user";
+import { useUser } from "@/services/user";
+import * as React from "react";
+
+import OperationDialog from "../common/dialog/OperationDialog";
+
+export interface ChangeNicknameDialogProps {
+ open: boolean;
+ close: () => void;
+}
+
+const ChangeNicknameDialog: React.FC<ChangeNicknameDialogProps> = (props) => {
+ const user = useUser();
+
+ if (user == null) return null;
+
+ return (
+ <OperationDialog
+ open={props.open}
+ title="settings.dialogChangeNickname.title"
+ inputScheme={[
+ { type: "text", label: "settings.dialogChangeNickname.inputLabel" },
+ ]}
+ onProcess={([newNickname]) => {
+ return getHttpUserClient().patch(user.username, {
+ nickname: newNickname,
+ });
+ }}
+ onClose={props.close}
+ />
+ );
+};
+
+export default ChangeNicknameDialog;