diff options
author | crupest <crupest@outlook.com> | 2020-08-25 15:30:55 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-08-25 15:30:55 +0800 |
commit | 201f75e0c339d3745a1fdb43a9579d502c447710 (patch) | |
tree | 82a6b9acafdcad685fa306674cc934bd21d11280 | |
parent | 738a17688ca481db62755295f8b732200ca12511 (diff) | |
download | timeline-201f75e0c339d3745a1fdb43a9579d502c447710.tar.gz timeline-201f75e0c339d3745a1fdb43a9579d502c447710.tar.bz2 timeline-201f75e0c339d3745a1fdb43a9579d502c447710.zip |
Move change nickname api to UserInfoService.
-rw-r--r-- | Timeline/ClientApp/src/app/data/user.ts | 9 | ||||
-rw-r--r-- | Timeline/ClientApp/src/app/timeline/TimelinePageTemplate.tsx | 1 | ||||
-rw-r--r-- | Timeline/ClientApp/src/app/user/User.tsx | 12 | ||||
-rw-r--r-- | Timeline/ClientApp/src/app/user/api.ts | 10 |
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); -} |