aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-08-25 15:30:55 +0800
committercrupest <crupest@outlook.com>2020-08-25 15:30:55 +0800
commit201f75e0c339d3745a1fdb43a9579d502c447710 (patch)
tree82a6b9acafdcad685fa306674cc934bd21d11280 /Timeline/ClientApp/src
parent738a17688ca481db62755295f8b732200ca12511 (diff)
downloadtimeline-201f75e0c339d3745a1fdb43a9579d502c447710.tar.gz
timeline-201f75e0c339d3745a1fdb43a9579d502c447710.tar.bz2
timeline-201f75e0c339d3745a1fdb43a9579d502c447710.zip
Move change nickname api to UserInfoService.
Diffstat (limited to 'Timeline/ClientApp/src')
-rw-r--r--Timeline/ClientApp/src/app/data/user.ts9
-rw-r--r--Timeline/ClientApp/src/app/timeline/TimelinePageTemplate.tsx1
-rw-r--r--Timeline/ClientApp/src/app/user/User.tsx12
-rw-r--r--Timeline/ClientApp/src/app/user/api.ts10
4 files changed, 12 insertions, 20 deletions
diff --git a/Timeline/ClientApp/src/app/data/user.ts b/Timeline/ClientApp/src/app/data/user.ts
index ceabdbe2..f42b2d58 100644
--- a/Timeline/ClientApp/src/app/data/user.ts
+++ b/Timeline/ClientApp/src/app/data/user.ts
@@ -363,6 +363,15 @@ export class UserInfoService {
await getHttpUserClient().putAvatar(username, blob, user.token);
this._avatarHub.getLine(username)?.next({ data: blob, type: "synced" });
}
+
+ async setNickname(username: string, nickname: string): Promise<void> {
+ const user = checkLogin();
+ return getHttpUserClient()
+ .patch(username, { nickname }, user.token)
+ .then((user) => {
+ void this.saveUser(user);
+ });
+ }
}
export const userInfoService = new UserInfoService();
diff --git a/Timeline/ClientApp/src/app/timeline/TimelinePageTemplate.tsx b/Timeline/ClientApp/src/app/timeline/TimelinePageTemplate.tsx
index 3f470826..62470e63 100644
--- a/Timeline/ClientApp/src/app/timeline/TimelinePageTemplate.tsx
+++ b/Timeline/ClientApp/src/app/timeline/TimelinePageTemplate.tsx
@@ -25,7 +25,6 @@ export interface TimelinePageTemplateProps<TManageItem> {
UiComponent: React.ComponentType<
ExcludeKey<TimelinePageTemplateUIProps<TManageItem>, "CardComponent">
>;
- dataVersion?: number;
notFoundI18nKey: string;
}
diff --git a/Timeline/ClientApp/src/app/user/User.tsx b/Timeline/ClientApp/src/app/user/User.tsx
index 56058ce7..db0a6f76 100644
--- a/Timeline/ClientApp/src/app/user/User.tsx
+++ b/Timeline/ClientApp/src/app/user/User.tsx
@@ -5,7 +5,6 @@ import { UiLogicError } from "../common";
import { useUser, userInfoService } from "../data/user";
import TimelinePageTemplate from "../timeline/TimelinePageTemplate";
-import { changeNickname } from "./api";
import UserPage from "./UserPage";
import ChangeNicknameDialog from "./ChangeNicknameDialog";
import ChangeAvatarDialog from "./ChangeAvatarDialog";
@@ -17,7 +16,6 @@ const User: React.FC = (_) => {
const user = useUser();
const [dialog, setDialog] = useState<null | PersonalTimelineManageItem>(null);
- const [dataKey, setDataKey] = useState<number>(0);
let dialogElement: React.ReactElement | undefined;
@@ -34,12 +32,9 @@ const User: React.FC = (_) => {
<ChangeNicknameDialog
open
close={closeDialogHandler}
- onProcess={(newNickname) => {
- const p = changeNickname(user.token, username, newNickname);
- return p.then((_) => {
- setDataKey(dataKey + 1);
- });
- }}
+ onProcess={(newNickname) =>
+ userInfoService.setNickname(username, newNickname)
+ }
/>
);
} else if (dialog === "avatar") {
@@ -63,7 +58,6 @@ const User: React.FC = (_) => {
return (
<>
<TimelinePageTemplate
- dataVersion={dataKey}
name={`@${username}`}
UiComponent={UserPage}
onManage={onManage}
diff --git a/Timeline/ClientApp/src/app/user/api.ts b/Timeline/ClientApp/src/app/user/api.ts
deleted file mode 100644
index e69acbdb..00000000
--- a/Timeline/ClientApp/src/app/user/api.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { getHttpUserClient } from "../http/user";
-import { User } from "../data/user";
-
-export function changeNickname(
- token: string,
- username: string,
- newNickname: string
-): Promise<User> {
- return getHttpUserClient().patch(username, { nickname: newNickname }, token);
-}