more ergonomic

This commit is contained in:
Brandon Thomas committed 2021-09-03 04:48:10 -04:00
1 parent c5dd8271c3
commit ef12eac34d
2 files changed
+12 -16

No files matched your search

+8 -12
View File
@@ -38,11 +38,7 @@ export interface UserProfileModeratorFields {
maybe_mod_user_token: string | null | undefined,
}
export interface UserLookupError {
errorType: UserLookupErrorType,
}
export enum UserLookupErrorType {
export enum UserLookupError {
NotFound,
ServerError,
FrontendError,
@@ -51,11 +47,11 @@ export enum UserLookupErrorType {
export type GetUserByUsernameResponse = User | UserLookupError;
export function GetUserByUsernameIsOk(response: GetUserByUsernameResponse): response is User {
return 'user_token' in response;
return response.hasOwnProperty('user_token');
}
export function GetUserByUsernameIsErr(response: GetUserByUsernameResponse): response is UserLookupError {
return 'errorType' in response;
return !response.hasOwnProperty('user_token');
}
@@ -84,18 +80,18 @@ export async function GetUserByUsername(username: string) : Promise<GetUserByUse
return response.user!;
}
let errorType = UserLookupErrorType.FrontendError;
let errorType = UserLookupError.FrontendError;
if (response?.success === false) {
if (response.error_reason?.includes("not found")) {
errorType = UserLookupErrorType.NotFound;
errorType = UserLookupError.NotFound;
} else {
errorType = UserLookupErrorType.ServerError;
errorType = UserLookupError.ServerError;
}
}
return { errorType: errorType };
return errorType;
})
.catch(e => {
return { errorType: UserLookupErrorType.FrontendError };
return UserLookupError.FrontendError;
});
}
@@ -10,7 +10,7 @@ import { useParams } from 'react-router-dom';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faDiscord, faFirefox, faGithub, faTwitch, faTwitter } from '@fortawesome/free-brands-svg-icons';
import { faClock, faDollarSign } from '@fortawesome/free-solid-svg-icons';
import { GetUserByUsername, GetUserByUsernameIsErr, GetUserByUsernameIsOk, User, UserLookupErrorType } from '../../../api/user/GetUserByUsername';
import { GetUserByUsername, GetUserByUsernameIsErr, GetUserByUsernameIsOk, User, UserLookupError } from '../../../api/user/GetUserByUsername';
import { format } from 'date-fns';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
@@ -30,8 +30,8 @@ function ProfileFc(props: Props) {
if (GetUserByUsernameIsOk(response)) {
setUserData(response);
} else if (GetUserByUsernameIsErr(response)) {
switch(response.errorType) {
case UserLookupErrorType.NotFound:
switch(response) {
case UserLookupError.NotFound:
setNotFoundState(true);
break;
}
@@ -40,7 +40,7 @@ function ProfileFc(props: Props) {
useEffect(() => {
getUser(username);
}, [username, getUser]); // NB: Empty array dependency sets to run ONLY on mount
}, [username, getUser]);
if (notFoundState) {
return (