empty string for mock data

This commit is contained in:
Taehee Choi 2022-03-25 13:15:25 -07:00
parent 04320c0ee5
commit ff8cd26a53
6 changed files with 101 additions and 59 deletions

View File

@ -77,7 +77,7 @@ const meetings = [
];
const team = {
user: "0",
user: "",
manager: "1",
sameManager: ["2", "3", "4", "5", "6"],
directReports: [],

View File

@ -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 = () => {
<Typography className="mylabel" sx={{ ml: 1 }}>Sunday, 03 Feb 2022</Typography>
</div> */}
<div className="row panel-label">
<Typography className="mylabel" sx={{ ml: 1 }}>Meetings in Progress</Typography>
<Typography className="mylabel" sx={{ ml: 1 }}>
Meetings in Progress
</Typography>
</div>
{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<Date>(new Date());
useEffect(() => {
@ -41,8 +42,14 @@ const MeetingsPanel: React.FC = () => {
return (
<Meeting
meetingName={meeting.topic}
meetingTime={formatTimeFromDate(startDate) + " - " + formatTimeFromDate(endDate)}
meetingMembers={meetingMembers.map((userLite) => (" " + userLite.name + " ")).toString()}
meetingTime={
formatTimeFromDate(startDate) +
" - " +
formatTimeFromDate(endDate)
}
meetingMembers={meetingMembers
.map((userLite) => " " + userLite.name + " ")
.toString()}
/>
);
}

View File

@ -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));

View File

@ -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) => {
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 }) => {
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 }) => {
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;

View File

@ -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,6 +48,7 @@ export const meetingsAndUserStatusSlice = createSlice({
export const fetchMeetings = createAsyncThunk(
"meetingsAndUserStatus/fetchMeetings",
async (uuid: string) => {
if (uuid) {
const response = await axios.get(
`/users/${uuid}/meetings?start=1900-01-01&end=2100-01-01`
);
@ -62,6 +64,19 @@ export const fetchMeetings = createAsyncThunk(
});
});
return { userStatuses: userStatuses, meetings: meetings };
} else {
const userStatuses: Record<string, UserStatus> = {};
meetings.forEach((meeting) => {
meeting.liveParticipantIds.forEach((uuid) => {
userStatuses[uuid] = {
userId: uuid,
inMeeting: true,
meetingId: meeting.meetingId,
};
});
});
return { userStatuses: userStatuses, meetings: meetings };
}
}
);

View File

@ -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,6 +37,7 @@ export const usersSlice = createSlice({
export const fetchUsers = createAsyncThunk(
"users/fetchUsers",
async (uuid: string) => {
if (uuid) {
const users: Record<string, UserLite> = {};
const team: TeamState = {
user: "",
@ -63,6 +65,13 @@ export const fetchUsers = createAsyncThunk(
});
console.log(users);
return { users: users, team: team };
} else {
const users: Record<string, UserLite> = {};
userLites.forEach((userLite) => {
users[userLite.uuid] = userLite;
});
return { users: users, team: team };
}
}
);