diff --git a/src/api-bodies/MockData.tsx b/src/api-bodies/MockData.tsx
index e85a51e..8351c1b 100644
--- a/src/api-bodies/MockData.tsx
+++ b/src/api-bodies/MockData.tsx
@@ -77,7 +77,7 @@ const meetings = [
];
const team = {
- user: "0",
+ user: "",
manager: "1",
sameManager: ["2", "3", "4", "5", "6"],
directReports: [],
diff --git a/src/components/home/MeetingsPanel.tsx b/src/components/home/MeetingsPanel.tsx
index 96c7dca..5125a5e 100644
--- a/src/components/home/MeetingsPanel.tsx
+++ b/src/components/home/MeetingsPanel.tsx
@@ -7,7 +7,6 @@ import { selectUsers } from "../../redux/slices/usersSlice";
import { formatTimeFromDate } from "../../utils";
const MeetingsPanel: React.FC = () => {
-
const meetings = useAppSelector(selectMeetings);
return (
@@ -19,7 +18,9 @@ const MeetingsPanel: React.FC = () => {
Sunday, 03 Feb 2022
*/}
- Meetings in Progress
+
+ Meetings in Progress
+
{meetings.map((meeting) => {
@@ -28,7 +29,7 @@ const MeetingsPanel: React.FC = () => {
);
const startDate = new Date(meeting.start);
const startDatemil = startDate.getTime();
- const endDatemil = startDatemil + meeting.duration*60000;
+ const endDatemil = startDatemil + meeting.duration * 60000;
const endDate = new Date(endDatemil);
const [currentDate, setCurrentDate] = useState(new Date());
useEffect(() => {
@@ -39,10 +40,16 @@ const MeetingsPanel: React.FC = () => {
if (currentDatemil >= startDatemil && currentDatemil <= endDatemil) {
return (
- (" " + userLite.name + " ")).toString()}
+ " " + userLite.name + " ")
+ .toString()}
/>
);
}
@@ -50,5 +57,5 @@ const MeetingsPanel: React.FC = () => {
);
};
-
-export default MeetingsPanel;
\ No newline at end of file
+
+export default MeetingsPanel;
diff --git a/src/components/login/Login.tsx b/src/components/login/Login.tsx
index 71eae7e..faf90b3 100644
--- a/src/components/login/Login.tsx
+++ b/src/components/login/Login.tsx
@@ -13,7 +13,6 @@ import { fetchFavorites } from "../../redux/slices/favoritesSlice";
import { fetchMeetings } from "../../redux/slices/meetingsAndUserStatusSlice";
import { fetchUsers } from "../../redux/slices/usersSlice";
import axios from "../../api/axios";
-import { socketActions } from "../../redux/slices/meetingsAndUserStatusSlice";
interface LocationState {
from: { pathname: string };
@@ -72,7 +71,6 @@ const Login: React.FC = () => {
setAuth.email = email;
setAuth.isLoggedIn = true;
- store.dispatch(socketActions.startConnecting());
store.dispatch(fetchMeetings(logedInUserId));
store.dispatch(fetchUsers(logedInUserId));
store.dispatch(fetchFavorites(logedInUserId));
diff --git a/src/redux/slices/favoritesSlice.tsx b/src/redux/slices/favoritesSlice.tsx
index 0fbbbe3..4f9d151 100644
--- a/src/redux/slices/favoritesSlice.tsx
+++ b/src/redux/slices/favoritesSlice.tsx
@@ -1,6 +1,7 @@
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
import { RootState } from "../store";
import axios from "../../api/axios";
+import { favorites } from "../../api-bodies/MockData";
interface FavoritesState {
favorites: string[];
@@ -32,25 +33,37 @@ export const favoritesSlice = createSlice({
export const fetchFavorites = createAsyncThunk(
"favorites/fetchFavorites",
async (uuid: string) => {
- const response = await axios.get(`/users/${uuid}/favourites`);
- return response.data.userIds;
+ if (uuid) {
+ const response = await axios.get(`/users/${uuid}/favourites`);
+ return response.data.userIds;
+ } else {
+ return favorites;
+ }
}
);
export const addFavorite = createAsyncThunk(
"favorites/addFavorite",
async (ids: { userId: string; toBeAdded: string }) => {
- await axios.post(
- `/users/${ids.userId}/favourites`,
- JSON.stringify({ userId: ids.toBeAdded })
- );
- return ids.toBeAdded;
+ if (ids.userId) {
+ await axios.post(
+ `/users/${ids.userId}/favourites`,
+ JSON.stringify({ userId: ids.toBeAdded })
+ );
+ return ids.toBeAdded;
+ } else {
+ return ids.toBeAdded;
+ }
}
);
export const removeFavorite = createAsyncThunk(
"favorites/removeFavorite",
async (ids: { userId: string; toBeRemoved: string }) => {
- await axios.delete(`/users/${ids.userId}/favourites/${ids.toBeRemoved}`);
- return ids.toBeRemoved;
+ if (ids.userId) {
+ await axios.delete(`/users/${ids.userId}/favourites/${ids.toBeRemoved}`);
+ return ids.toBeRemoved;
+ } else {
+ return ids.toBeRemoved;
+ }
}
);
export const selectFavorites = (state: RootState) => state.favorites.favorites;
diff --git a/src/redux/slices/meetingsAndUserStatusSlice.tsx b/src/redux/slices/meetingsAndUserStatusSlice.tsx
index f43fe31..1b7a411 100644
--- a/src/redux/slices/meetingsAndUserStatusSlice.tsx
+++ b/src/redux/slices/meetingsAndUserStatusSlice.tsx
@@ -3,6 +3,7 @@ import DetailedMeeting from "../../api-bodies/DetailedMeeting";
import { RootState } from "../store";
import UserStatus from "../../api-bodies/UserStatus";
import axios from "../../api/axios";
+import { meetings } from "../../api-bodies/MockData";
interface MeetingsAndUserStatusState {
meetings: DetailedMeeting[];
@@ -47,21 +48,35 @@ export const meetingsAndUserStatusSlice = createSlice({
export const fetchMeetings = createAsyncThunk(
"meetingsAndUserStatus/fetchMeetings",
async (uuid: string) => {
- const response = await axios.get(
- `/users/${uuid}/meetings?start=1900-01-01&end=2100-01-01`
- );
- const meetings: DetailedMeeting[] = response.data.meetings;
- const userStatuses: Record = {};
- meetings.forEach((meeting) => {
- meeting.liveParticipantIds.forEach((uuid) => {
- userStatuses[uuid] = {
- userId: uuid,
- inMeeting: true,
- meetingId: meeting.meetingId,
- };
+ if (uuid) {
+ const response = await axios.get(
+ `/users/${uuid}/meetings?start=1900-01-01&end=2100-01-01`
+ );
+ const meetings: DetailedMeeting[] = response.data.meetings;
+ const userStatuses: Record = {};
+ meetings.forEach((meeting) => {
+ meeting.liveParticipantIds.forEach((uuid) => {
+ userStatuses[uuid] = {
+ userId: uuid,
+ inMeeting: true,
+ meetingId: meeting.meetingId,
+ };
+ });
});
- });
- return { userStatuses: userStatuses, meetings: meetings };
+ return { userStatuses: userStatuses, meetings: meetings };
+ } else {
+ const userStatuses: Record = {};
+ meetings.forEach((meeting) => {
+ meeting.liveParticipantIds.forEach((uuid) => {
+ userStatuses[uuid] = {
+ userId: uuid,
+ inMeeting: true,
+ meetingId: meeting.meetingId,
+ };
+ });
+ });
+ return { userStatuses: userStatuses, meetings: meetings };
+ }
}
);
diff --git a/src/redux/slices/usersSlice.tsx b/src/redux/slices/usersSlice.tsx
index c082184..b3325da 100644
--- a/src/redux/slices/usersSlice.tsx
+++ b/src/redux/slices/usersSlice.tsx
@@ -3,6 +3,7 @@ import { RootState } from "../store";
import UserLite from "../../api-bodies/UserLite";
import axios from "../../api/axios";
import UserFull from "../../api-bodies/UserFull";
+import { userLites, team } from "../../api-bodies/MockData";
interface TeamState {
user: string;
@@ -36,33 +37,41 @@ export const usersSlice = createSlice({
export const fetchUsers = createAsyncThunk(
"users/fetchUsers",
async (uuid: string) => {
- const users: Record = {};
- const team: TeamState = {
- user: "",
- manager: "",
- sameManager: [],
- directReports: [],
- };
- // fetch userfull
- const userResp = await axios.get(`/users/${uuid}`);
- const user: UserFull = userResp.data.user;
+ if (uuid) {
+ const users: Record = {};
+ const team: TeamState = {
+ user: "",
+ manager: "",
+ sameManager: [],
+ directReports: [],
+ };
+ // fetch userfull
+ const userResp = await axios.get(`/users/${uuid}`);
+ const user: UserFull = userResp.data.user;
- users[user.userInfo.uuid] = user.userInfo;
- users[user.manager.uuid] = user.manager;
+ users[user.userInfo.uuid] = user.userInfo;
+ users[user.manager.uuid] = user.manager;
- team.user = user.userInfo.uuid;
- team.manager = user.manager.uuid;
+ team.user = user.userInfo.uuid;
+ team.manager = user.manager.uuid;
- user.userDirectReports.forEach((userLite) => {
- users[userLite.uuid] = userLite;
- team.directReports.push(userLite.uuid);
- });
- user.managerDirectReports.forEach((userLite) => {
- users[userLite.uuid] = userLite;
- team.sameManager.push(userLite.uuid);
- });
- console.log(users);
- return { users: users, team: team };
+ user.userDirectReports.forEach((userLite) => {
+ users[userLite.uuid] = userLite;
+ team.directReports.push(userLite.uuid);
+ });
+ user.managerDirectReports.forEach((userLite) => {
+ users[userLite.uuid] = userLite;
+ team.sameManager.push(userLite.uuid);
+ });
+ console.log(users);
+ return { users: users, team: team };
+ } else {
+ const users: Record = {};
+ userLites.forEach((userLite) => {
+ users[userLite.uuid] = userLite;
+ });
+ return { users: users, team: team };
+ }
}
);