Skip to content

Commit 06a1a12

Browse files
authored
Remove old account implementation (#1036)
* Remove old account implementation * Delete group sidebar * Remove timetable syncing and groups
1 parent 7fe1748 commit 06a1a12

23 files changed

+55
-1377
lines changed

client/src/App.tsx

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import Sidebar from './components/sidebar/Sidebar';
1515
import Sponsors from './components/Sponsors';
1616
import SubcomPromotion from './components/promotions/SubcomPromotion';
1717
import Timetable from './components/timetable/Timetable';
18-
import TimetableShared from './components/timetableShared.tsx/TimetableShared';
1918
import { TimetableTabs } from './components/timetableTabs/TimetableTabs';
2019
import { contentPadding, rightContentPadding, themes } from './constants/theme';
2120
import {
@@ -29,7 +28,6 @@ import {
2928
} from './constants/timetable';
3029
import { AppContext } from './context/AppContext';
3130
import { CourseContext } from './context/CourseContext';
32-
import { UserContext } from './context/UserContext';
3331
import { useColorsDecoder } from './hooks/useColorDecoder';
3432
import useColorMapper from './hooks/useColorMapper';
3533
import useUpdateEffect from './hooks/useUpdateEffect';
@@ -47,7 +45,6 @@ import {
4745
import { setDropzoneRange, useDrag } from './utils/Drag';
4846
import { downloadIcsFile } from './utils/generateICS';
4947
import storage from './utils/storage';
50-
import { runSync } from './utils/syncTimetables';
5148
import { createDefaultTimetable } from './utils/timetableHelpers';
5249
import PromotionPopup from './components/promotions/PromotionPopup';
5350
import T3SelectGif from './assets/T3-select.gif';
@@ -148,7 +145,6 @@ const App: React.FC = () => {
148145
} = useContext(CourseContext);
149146

150147
const decodedAssignedColors = useColorsDecoder(assignedColors);
151-
const { user, setUser, groupsSidebarCollapsed, setGroupsSidebarCollapsed } = useContext(UserContext);
152148

153149
setDropzoneRange(days.length, earliestStartTime, latestEndTime);
154150

@@ -200,7 +196,7 @@ const App: React.FC = () => {
200196
...{
201197
[termId as string]: Object.prototype.hasOwnProperty.call(oldData, termId as string)
202198
? oldData[termId as string]
203-
: createDefaultTimetable(user.userID),
199+
: createDefaultTimetable(undefined),
204200
},
205201
};
206202
}
@@ -443,14 +439,6 @@ const App: React.FC = () => {
443439
updateTimetableEvents();
444440
}, [year, isConvertToLocalTimezone]);
445441

446-
const syncTimetables = () => {
447-
if (!user.userID) {
448-
return;
449-
}
450-
451-
runSync(user, setUser, displayTimetables, setDisplayTimetables);
452-
};
453-
454442
// The following three useUpdateEffects update local storage whenever a change is made to the timetable
455443
useUpdateEffect(() => {
456444
displayTimetables[term][selectedTimetable].selectedCourses = selectedCourses;
@@ -459,37 +447,32 @@ const App: React.FC = () => {
459447

460448
storage.set('timetables', displayTimetables);
461449
setDisplayTimetables(displayTimetables);
462-
syncTimetables();
463450
}, [selectedCourses]);
464451

465452
useUpdateEffect(() => {
466453
displayTimetables[term][selectedTimetable].selectedClasses = selectedClasses;
467454

468455
storage.set('timetables', displayTimetables);
469456
setDisplayTimetables(displayTimetables);
470-
syncTimetables();
471457
}, [selectedClasses]);
472458

473459
useUpdateEffect(() => {
474460
displayTimetables[term][selectedTimetable].createdEvents = createdEvents;
475461

476462
storage.set('timetables', displayTimetables);
477463
setDisplayTimetables(displayTimetables);
478-
syncTimetables();
479464
}, [createdEvents]);
480465

481466
useUpdateEffect(() => {
482467
displayTimetables[term][selectedTimetable].assignedColors = assignedColors;
483468

484469
storage.set('timetables', displayTimetables);
485470
setDisplayTimetables(displayTimetables);
486-
syncTimetables();
487471
}, [assignedColors]);
488472

489473
// Update storage when dragging timetables
490474
useUpdateEffect(() => {
491475
storage.set('timetables', displayTimetables);
492-
syncTimetables();
493476
}, [displayTimetables]);
494477

495478
/**
@@ -646,14 +629,8 @@ const App: React.FC = () => {
646629
handleRemoveCourse={handleRemoveCourse}
647630
/>
648631
<Outlet />
649-
{groupsSidebarCollapsed ? (
650-
<>
651-
<TimetableTabs />
652-
<Timetable assignedColors={decodedAssignedColors} handleSelectClass={handleSelectClass} />
653-
</>
654-
) : (
655-
<TimetableShared assignedColors={decodedAssignedColors} handleSelectClass={handleSelectClass} />
656-
)}
632+
<TimetableTabs />
633+
<Timetable assignedColors={decodedAssignedColors} handleSelectClass={handleSelectClass} />
657634
<ICSButton
658635
onClick={() => downloadIcsFile(selectedCourses, createdEvents, selectedClasses, firstDayOfTerm)}
659636
>

client/src/components/controls/History.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import React, { useCallback, useContext, useEffect, useRef, useState } from 'rea
44

55
import { AppContext } from '../../context/AppContext';
66
import { CourseContext } from '../../context/CourseContext';
7-
import { UserContext } from '../../context/UserContext';
87
import { CourseData, CreatedEvents, DisplayTimetablesMap, SelectedClasses } from '../../interfaces/Periods';
98
import {
109
ActionsPointer,
@@ -31,7 +30,6 @@ const History: React.FC = () => {
3130
useContext(CourseContext);
3231
const { isDrag, setIsDrag, selectedTimetable, setSelectedTimetable, displayTimetables, setDisplayTimetables, term } =
3332
useContext(AppContext);
34-
const { user } = useContext(UserContext);
3533

3634
const timetableActions = useRef<TimetableActions>({});
3735
const actionsPointer = useRef<ActionsPointer>({});
@@ -207,7 +205,7 @@ const History: React.FC = () => {
207205
* Resets all timetables - leave one as default
208206
*/
209207
const clearAll = () => {
210-
const newTimetables = createDefaultTimetable(user.userID);
208+
const newTimetables = createDefaultTimetable(undefined);
211209
if (!term) return;
212210

213211
const newDisplayTimetables: DisplayTimetablesMap = {

client/src/components/sidebar/FriendsButton.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import { IconButton, Tooltip, Typography } from '@mui/material';
33
import { styled } from '@mui/system';
44
import React, { useContext } from 'react';
55

6-
import { UserContext } from '../../context/UserContext';
7-
86
interface FriendsButtonProps {
97
collapsed: boolean;
108
}
@@ -22,16 +20,15 @@ const IndividualComponentTypography = styled(Typography)<{ collapsed: boolean }>
2220
font-size: 16px;
2321
`;
2422

23+
// TODO: Repurpose using Sunny's design for friends
2524
const FriendsButton: React.FC<FriendsButtonProps> = ({ collapsed }) => {
26-
const { groupsSidebarCollapsed, setGroupsSidebarCollapsed } = useContext(UserContext);
27-
2825
return (
2926
<>
3027
<Tooltip title="Coming Soon: Shared Timetables" placement="right">
3128
<StyledFriendsButton
3229
color="inherit"
3330
// onClick={() => setGroupsSidebarCollapsed(!groupsSidebarCollapsed)} UNCOMMENT to see shared timetables
34-
isSelected={!groupsSidebarCollapsed}
31+
isSelected={false}
3532
>
3633
<SwitchAccount />
3734
<IndividualComponentTypography collapsed={collapsed}>

client/src/components/sidebar/Sidebar.tsx

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,13 @@ import React, { useContext, useMemo, useState } from 'react';
99
import notanglesLogoGif from '../../assets/notangles.gif';
1010
import notanglesLogo from '../../assets/notangles_1.png';
1111
import { leftContentPadding } from '../../constants/theme';
12-
import { UserContext } from '../../context/UserContext';
1312
import About from './About';
1413
import Changelog from './Changelog';
1514
import CollapseButton from './CollapseButton';
1615
import MobileMenuButton from './MobileMenuButton';
1716
import CustomModal from './CustomModal';
1817
import DarkModeButton from './DarkModeButton';
1918
import FriendsButton from './FriendsButton';
20-
import GroupsSidebar from './groupsSidebar/GroupsSidebar';
2119
import Privacy from './Privacy';
2220
import Settings from './Settings';
2321
import UserAccount from './UserAccount';
@@ -117,25 +115,6 @@ const SidebarFooterWrapper = styled('div')`
117115
flex-direction: row;
118116
`;
119117

120-
const StyledGroupContainer = styled('div')`
121-
height: 100vh;
122-
width: 60px;
123-
background: ${({ theme }) => theme.palette.primary.main};
124-
display: flex;
125-
align-items: center;
126-
padding: 12px 2px;
127-
flex-direction: column;
128-
gap: 4px;
129-
130-
overflow-y: auto;
131-
max-height: calc(100vh - 24px);
132-
133-
scrollbar-width: none; /* Firefox */
134-
&::-webkit-scrollbar {
135-
display: none; /* Chrome, Safari, and Edge */
136-
}
137-
`;
138-
139118
const modalData = [
140119
{
141120
title: 'About',
@@ -179,7 +158,6 @@ const Sidebar: React.FC = () => {
179158

180159
const [currLogo, setCurrLogo] = useState(notanglesLogo);
181160
const [collapsed, setCollapsed] = useState(() => !isWide);
182-
const { groupsSidebarCollapsed } = useContext(UserContext);
183161

184162
const handleCollapse = (val: boolean) => {
185163
setCollapsed(val);
@@ -216,11 +194,6 @@ const Sidebar: React.FC = () => {
216194
onClose={() => handleCollapse(true)}
217195
elevation={0}
218196
>
219-
{!groupsSidebarCollapsed && (
220-
<StyledGroupContainer>
221-
<GroupsSidebar />
222-
</StyledGroupContainer>
223-
)}
224197
<Container>
225198
<div>
226199
<HeaderContainer>

client/src/components/sidebar/UserAccount.tsx

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
import { LoginRounded, LogoutRounded } from '@mui/icons-material';
22
import { Button, IconButton, Tooltip } from '@mui/material';
33
import { styled } from '@mui/system';
4-
import React, { useContext, useState } from 'react';
5-
4+
import React, { useState } from 'react';
65
import { API_URL } from '../../api/config';
7-
import { undefinedUser, UserContext } from '../../context/UserContext';
8-
import { DisplayTimetablesMap } from '../../interfaces/Periods';
96
import storage from '../../utils/storage';
107
import { createDefaultTimetable } from '../../utils/timetableHelpers';
118
import StyledDialog from '../StyledDialog';
12-
import UserProfile from './groupsSidebar/friends/UserProfile';
9+
import UserProfile from './friends/UserProfile';
1310

1411
interface UserAccountProps {
1512
collapsed: boolean;
@@ -45,26 +42,10 @@ const ExpandedContainer = styled('div')`
4542
padding: 10px 12px;
4643
`;
4744

48-
export interface User {
49-
userID: string;
50-
firstname: string;
51-
lastname: string;
52-
email: string;
53-
profileURL: string;
54-
createdAt: string;
55-
lastLogin: string;
56-
loggedIn: boolean;
57-
friends: User[];
58-
incoming: User[];
59-
outgoing: User[];
60-
timetables: DisplayTimetablesMap;
61-
}
62-
6345
const UserAccount: React.FC<UserAccountProps> = ({ collapsed }) => {
6446
const [windowLocation, setWindowLocation] = useState('');
6547
const [logoutDialog, setLogoutDialog] = useState(false);
6648

67-
const { user, setUser } = useContext(UserContext);
6849
const loginCall = async () => {
6950
setWindowLocation(window.location.href);
7051
try {
@@ -74,6 +55,14 @@ const UserAccount: React.FC<UserAccountProps> = ({ collapsed }) => {
7455
}
7556
};
7657

58+
const user = {
59+
userID: '',
60+
firstname: 'First',
61+
lastname: 'Last',
62+
63+
profileURL: '',
64+
};
65+
7766
const logoutCall = async () => {
7867
try {
7968
await fetch(`${API_URL.server}/auth/logout`, {
@@ -83,7 +72,6 @@ const UserAccount: React.FC<UserAccountProps> = ({ collapsed }) => {
8372
console.log(error);
8473
}
8574
window.location.replace(windowLocation);
86-
setUser(undefinedUser);
8775
storage.set('timetables', createDefaultTimetable(undefined));
8876
};
8977
if (!user.userID) {

client/src/components/sidebar/groupsSidebar/friends/AddAFriendTab.tsx renamed to client/src/components/sidebar/friends/AddAFriendTab.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import { Add, Close } from '@mui/icons-material';
33
import { IconButton, TextField, Tooltip } from '@mui/material';
44
import { useEffect, useState } from 'react';
55

6-
import { API_URL } from '../../../../api/config';
7-
import NetworkError from '../../../../interfaces/NetworkError';
8-
import { User } from '../../UserAccount';
6+
import { API_URL } from '../../../api/config';
7+
import NetworkError from '../../../interfaces/NetworkError';
8+
import { User } from './User';
99
import UserProfile from './UserProfile';
1010

1111
const StyledContainer = styled('div')`

client/src/components/sidebar/groupsSidebar/friends/FriendsDialog.tsx renamed to client/src/components/sidebar/friends/FriendsDialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Close as CloseIcon } from '@mui/icons-material';
33
import { Badge, Dialog, DialogTitle, IconButton, Paper, styled, Typography } from '@mui/material';
44
import React, { useState } from 'react';
55

6-
import { User } from '../../UserAccount';
6+
import { User } from './User';
77
import FriendsTablist from './FriendsTablist';
88

99
const StyledDialogTitle = styled(DialogTitle)`

client/src/components/sidebar/groupsSidebar/friends/FriendsTablist.tsx renamed to client/src/components/sidebar/friends/FriendsTablist.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Tab from '@mui/material/Tab';
55
import Tabs from '@mui/material/Tabs';
66
import * as React from 'react';
77

8-
import { User } from '../../UserAccount';
8+
import { User } from './User';
99
import AddAFriendTab from './AddAFriendTab';
1010
import RequestsTab from './RequestsTab';
1111
import YourFriendsTab from './YourFriendsTab';

client/src/components/sidebar/groupsSidebar/friends/RequestsTab.tsx renamed to client/src/components/sidebar/friends/RequestsTab.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import { Check, Close } from '@mui/icons-material';
33
import { IconButton, Tooltip } from '@mui/material';
44
import React from 'react';
55

6-
import { API_URL } from '../../../../api/config';
7-
import NetworkError from '../../../../interfaces/NetworkError';
8-
import { User } from '../../UserAccount';
6+
import { API_URL } from '../../../api/config';
7+
import NetworkError from '../../../interfaces/NetworkError';
8+
import { User } from './User';
99
import UserProfile from './UserProfile';
1010

1111
const StyledFriendsListContainer = styled('div')`
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { DisplayTimetablesMap } from '../../../interfaces/Periods';
2+
3+
export interface User {
4+
userID: string;
5+
firstname: string;
6+
lastname: string;
7+
email: string;
8+
profileURL: string;
9+
createdAt: string;
10+
lastLogin: string;
11+
loggedIn: boolean;
12+
friends: User[];
13+
incoming: User[];
14+
outgoing: User[];
15+
timetables: DisplayTimetablesMap;
16+
}

0 commit comments

Comments
 (0)