Skip to content

Commit 8c68e8c

Browse files
authored
Merge branch 'main' into convert-remaining-js-files-to-ts
2 parents d72f664 + ae97d83 commit 8c68e8c

File tree

3 files changed

+19
-62
lines changed

3 files changed

+19
-62
lines changed

src/routes.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import RouteGuard from './ui/components/RouteGuard/RouteGuard';
2121
import Person from '@material-ui/icons/Person';
2222
import OpenPushRequests from './ui/views/OpenPushRequests/OpenPushRequests';
2323
import PushDetails from './ui/views/PushDetails/PushDetails';
24-
import User from './ui/views/User/User';
24+
import User from './ui/views/User/UserProfile';
2525
import UserList from './ui/views/UserList/UserList';
2626
import RepoDetails from './ui/views/RepoDetails/RepoDetails';
2727
import RepoList from './ui/views/RepoList/RepoList';

src/ui/services/user.ts

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ const getUser = async (
1717
if (id) {
1818
url = `${API_BASE}/api/v1/user/${id}`;
1919
}
20-
console.log(url);
2120

2221
try {
2322
const response: AxiosResponse<UserData> = await axios(url, getAxiosConfig());
@@ -80,29 +79,4 @@ const updateUser = async (data: UserData): Promise<void> => {
8079
}
8180
};
8281

83-
const getUserLoggedIn = async (
84-
setIsLoading: SetStateCallback<boolean>,
85-
setIsAdmin: SetStateCallback<boolean>,
86-
setIsError: SetStateCallback<boolean>,
87-
setAuth: SetStateCallback<boolean>,
88-
): Promise<void> => {
89-
try {
90-
const response: AxiosResponse<UserData> = await axios(
91-
`${API_BASE}/api/auth/me`,
92-
getAxiosConfig(),
93-
);
94-
const data = response.data;
95-
setIsLoading(false);
96-
setIsAdmin(data.admin || false);
97-
} catch (error) {
98-
setIsLoading(false);
99-
const axiosError = error as AxiosError;
100-
if (axiosError.response?.status === 401) {
101-
setAuth(false);
102-
} else {
103-
setIsError(true);
104-
}
105-
}
106-
};
107-
108-
export { getUser, getUsers, updateUser, getUserLoggedIn };
82+
export { getUser, getUsers, updateUser };

src/ui/views/User/User.tsx renamed to src/ui/views/User/UserProfile.tsx

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import React, { useState, useEffect } from 'react';
1+
import React, { useState, useEffect, useContext } from 'react';
22
import { Navigate, useNavigate, useParams } from 'react-router-dom';
33
import GridItem from '../../components/Grid/GridItem';
44
import GridContainer from '../../components/Grid/GridContainer';
55
import Card from '../../components/Card/Card';
66
import CardBody from '../../components/Card/CardBody';
77
import Button from '../../components/CustomButtons/Button';
88
import FormLabel from '@material-ui/core/FormLabel';
9-
import { getUser, updateUser, getUserLoggedIn } from '../../services/user';
9+
import { getUser, updateUser } from '../../services/user';
10+
import { UserContext } from '../../../context';
1011

1112
import { UserData } from '../../../types/models';
1213
import { makeStyles } from '@material-ui/core/styles';
@@ -15,6 +16,7 @@ import { LogoGithubIcon } from '@primer/octicons-react';
1516
import CloseRounded from '@material-ui/icons/CloseRounded';
1617
import { Check, Save } from '@material-ui/icons';
1718
import { TextField, Theme } from '@material-ui/core';
19+
import { UserContextType } from '../RepoDetails/RepoDetails';
1820

1921
const useStyles = makeStyles((theme: Theme) => ({
2022
root: {
@@ -31,42 +33,23 @@ export default function UserProfile(): React.ReactElement {
3133
const [auth, setAuth] = useState<boolean>(true);
3234
const [isLoading, setIsLoading] = useState<boolean>(true);
3335
const [isError, setIsError] = useState<boolean>(false);
34-
const [isProfile, setIsProfile] = useState<boolean>(false);
35-
const [isAdmin, setIsAdmin] = useState<boolean>(false);
3636
const [gitAccount, setGitAccount] = useState<string>('');
3737
const navigate = useNavigate();
3838
const { id } = useParams<{ id?: string }>();
39+
const { user: loggedInUser } = useContext<UserContextType>(UserContext);
40+
const isOwnProfile = !id;
3941

4042
useEffect(() => {
41-
if (id == null) {
42-
setIsProfile(true);
43-
}
44-
45-
if (id) {
46-
getUser(
47-
setIsLoading,
48-
(userData: UserData) => {
49-
setData(userData);
50-
setGitAccount(userData.gitAccount || '');
51-
},
52-
setAuth,
53-
setIsError,
54-
id,
55-
);
56-
getUserLoggedIn(setIsLoading, setIsAdmin, setIsError, setAuth);
57-
} else {
58-
console.log('getting user data');
59-
setIsProfile(true);
60-
getUser(
61-
setIsLoading,
62-
(userData: UserData) => {
63-
setData(userData);
64-
setGitAccount(userData.gitAccount || '');
65-
},
66-
setAuth,
67-
setIsError,
68-
);
69-
}
43+
getUser(
44+
setIsLoading,
45+
(userData: UserData) => {
46+
setData(userData);
47+
setGitAccount(userData.gitAccount || '');
48+
},
49+
setAuth,
50+
setIsError,
51+
id,
52+
);
7053
}, [id]);
7154

7255
if (isLoading) return <div>Loading...</div>;
@@ -169,7 +152,7 @@ export default function UserProfile(): React.ReactElement {
169152
)}
170153
</GridItem>
171154
</GridContainer>
172-
{isProfile || isAdmin ? (
155+
{isOwnProfile || loggedInUser.admin ? (
173156
<div style={{ marginTop: '50px' }}>
174157
<hr style={{ opacity: 0.2 }} />
175158
<div style={{ marginTop: '25px' }}>

0 commit comments

Comments
 (0)