aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'Timeline/ClientApp/src/app/user/api.ts')
-rw-r--r--Timeline/ClientApp/src/app/user/api.ts79
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]
- );
-}