diff options
author | crupest <crupest@outlook.com> | 2020-07-13 20:59:52 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-07-13 20:59:52 +0800 |
commit | 6f0b2b85df74199575eabee3abfd7734bd36df76 (patch) | |
tree | 8030e6a2539347ccb12f0a6bbd31a1f390c6a7b7 /Timeline/ClientApp/src/app/user/api.ts | |
parent | 5d71f96cb7673815d80d0a4eb09a3cc96c564a18 (diff) | |
download | timeline-6f0b2b85df74199575eabee3abfd7734bd36df76.tar.gz timeline-6f0b2b85df74199575eabee3abfd7734bd36df76.tar.bz2 timeline-6f0b2b85df74199575eabee3abfd7734bd36df76.zip |
Move front end to a submodule.
Diffstat (limited to 'Timeline/ClientApp/src/app/user/api.ts')
-rw-r--r-- | Timeline/ClientApp/src/app/user/api.ts | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/Timeline/ClientApp/src/app/user/api.ts b/Timeline/ClientApp/src/app/user/api.ts deleted file mode 100644 index a9855eb0..00000000 --- a/Timeline/ClientApp/src/app/user/api.ts +++ /dev/null @@ -1,79 +0,0 @@ -import React from 'react'; -import axios from 'axios'; -import { BehaviorSubject, Observable } from 'rxjs'; - -import { apiBaseUrl } from '../config'; -import { User } from '../data/user'; -import { updateQueryString } from '../helper'; - -export function changeNickname( - token: string, - username: string, - newNickname: string -): Promise<User> { - return axios - .patch<User>(`${apiBaseUrl}/users/${username}?token=${token}`, { - nickname: newNickname, - }) - .then((res) => res.data); -} - -const avatarVersionSubject = new BehaviorSubject<number | undefined>(undefined); - -export function changeAvatar( - token: string, - username: string, - data: Blob, - type: string -): Promise<void> { - return axios - .put(`${apiBaseUrl}/users/${username}/avatar?token=${token}`, data, { - headers: { - 'Content-Type': type, - }, - }) - .then(() => { - avatarVersionSubject.next((avatarVersionSubject.value ?? 0) + 1); - }); -} - -export const avatarVersion$: Observable< - number | undefined -> = avatarVersionSubject; - -export function useAvatarVersion(): number | undefined { - const [version, setVersion] = React.useState<number | undefined>(); - React.useEffect(() => { - const subscription = avatarVersion$.subscribe((v) => setVersion(v)); - return () => subscription.unsubscribe(); - }, []); - return version; -} - -export function useOptionalVersionedAvatarUrl( - url: string | undefined -): string | undefined { - const avatarVersion = useAvatarVersion(); - return React.useMemo( - () => - url == null - ? undefined - : updateQueryString( - 'v', - avatarVersion == null ? null : avatarVersion.toString(), - url - ), - [avatarVersion, url] - ); -} - -export function useAvatarUrlWithGivenVersion( - version: number | null | undefined, - url: string -): string { - return React.useMemo( - () => - updateQueryString('v', version == null ? null : version.toString(), url), - [version, url] - ); -} |