empty string for mock data
This commit is contained in:
parent
04320c0ee5
commit
ff8cd26a53
@ -77,7 +77,7 @@ const meetings = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const team = {
|
const team = {
|
||||||
user: "0",
|
user: "",
|
||||||
manager: "1",
|
manager: "1",
|
||||||
sameManager: ["2", "3", "4", "5", "6"],
|
sameManager: ["2", "3", "4", "5", "6"],
|
||||||
directReports: [],
|
directReports: [],
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import { selectUsers } from "../../redux/slices/usersSlice";
|
|||||||
import { formatTimeFromDate } from "../../utils";
|
import { formatTimeFromDate } from "../../utils";
|
||||||
|
|
||||||
const MeetingsPanel: React.FC = () => {
|
const MeetingsPanel: React.FC = () => {
|
||||||
|
|
||||||
const meetings = useAppSelector(selectMeetings);
|
const meetings = useAppSelector(selectMeetings);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -19,7 +18,9 @@ const MeetingsPanel: React.FC = () => {
|
|||||||
<Typography className="mylabel" sx={{ ml: 1 }}>Sunday, 03 Feb 2022</Typography>
|
<Typography className="mylabel" sx={{ ml: 1 }}>Sunday, 03 Feb 2022</Typography>
|
||||||
</div> */}
|
</div> */}
|
||||||
<div className="row panel-label">
|
<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>
|
</div>
|
||||||
|
|
||||||
{meetings.map((meeting) => {
|
{meetings.map((meeting) => {
|
||||||
@ -28,7 +29,7 @@ const MeetingsPanel: React.FC = () => {
|
|||||||
);
|
);
|
||||||
const startDate = new Date(meeting.start);
|
const startDate = new Date(meeting.start);
|
||||||
const startDatemil = startDate.getTime();
|
const startDatemil = startDate.getTime();
|
||||||
const endDatemil = startDatemil + meeting.duration*60000;
|
const endDatemil = startDatemil + meeting.duration * 60000;
|
||||||
const endDate = new Date(endDatemil);
|
const endDate = new Date(endDatemil);
|
||||||
const [currentDate, setCurrentDate] = useState<Date>(new Date());
|
const [currentDate, setCurrentDate] = useState<Date>(new Date());
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -39,10 +40,16 @@ const MeetingsPanel: React.FC = () => {
|
|||||||
|
|
||||||
if (currentDatemil >= startDatemil && currentDatemil <= endDatemil) {
|
if (currentDatemil >= startDatemil && currentDatemil <= endDatemil) {
|
||||||
return (
|
return (
|
||||||
<Meeting
|
<Meeting
|
||||||
meetingName={meeting.topic}
|
meetingName={meeting.topic}
|
||||||
meetingTime={formatTimeFromDate(startDate) + " - " + formatTimeFromDate(endDate)}
|
meetingTime={
|
||||||
meetingMembers={meetingMembers.map((userLite) => (" " + userLite.name + " ")).toString()}
|
formatTimeFromDate(startDate) +
|
||||||
|
" - " +
|
||||||
|
formatTimeFromDate(endDate)
|
||||||
|
}
|
||||||
|
meetingMembers={meetingMembers
|
||||||
|
.map((userLite) => " " + userLite.name + " ")
|
||||||
|
.toString()}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -50,5 +57,5 @@ const MeetingsPanel: React.FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default MeetingsPanel;
|
export default MeetingsPanel;
|
||||||
|
|||||||
@ -13,7 +13,6 @@ import { fetchFavorites } from "../../redux/slices/favoritesSlice";
|
|||||||
import { fetchMeetings } from "../../redux/slices/meetingsAndUserStatusSlice";
|
import { fetchMeetings } from "../../redux/slices/meetingsAndUserStatusSlice";
|
||||||
import { fetchUsers } from "../../redux/slices/usersSlice";
|
import { fetchUsers } from "../../redux/slices/usersSlice";
|
||||||
import axios from "../../api/axios";
|
import axios from "../../api/axios";
|
||||||
import { socketActions } from "../../redux/slices/meetingsAndUserStatusSlice";
|
|
||||||
|
|
||||||
interface LocationState {
|
interface LocationState {
|
||||||
from: { pathname: string };
|
from: { pathname: string };
|
||||||
@ -72,7 +71,6 @@ const Login: React.FC = () => {
|
|||||||
setAuth.email = email;
|
setAuth.email = email;
|
||||||
setAuth.isLoggedIn = true;
|
setAuth.isLoggedIn = true;
|
||||||
|
|
||||||
store.dispatch(socketActions.startConnecting());
|
|
||||||
store.dispatch(fetchMeetings(logedInUserId));
|
store.dispatch(fetchMeetings(logedInUserId));
|
||||||
store.dispatch(fetchUsers(logedInUserId));
|
store.dispatch(fetchUsers(logedInUserId));
|
||||||
store.dispatch(fetchFavorites(logedInUserId));
|
store.dispatch(fetchFavorites(logedInUserId));
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
|
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
|
||||||
import { RootState } from "../store";
|
import { RootState } from "../store";
|
||||||
import axios from "../../api/axios";
|
import axios from "../../api/axios";
|
||||||
|
import { favorites } from "../../api-bodies/MockData";
|
||||||
|
|
||||||
interface FavoritesState {
|
interface FavoritesState {
|
||||||
favorites: string[];
|
favorites: string[];
|
||||||
@ -32,25 +33,37 @@ export const favoritesSlice = createSlice({
|
|||||||
export const fetchFavorites = createAsyncThunk(
|
export const fetchFavorites = createAsyncThunk(
|
||||||
"favorites/fetchFavorites",
|
"favorites/fetchFavorites",
|
||||||
async (uuid: string) => {
|
async (uuid: string) => {
|
||||||
const response = await axios.get(`/users/${uuid}/favourites`);
|
if (uuid) {
|
||||||
return response.data.userIds;
|
const response = await axios.get(`/users/${uuid}/favourites`);
|
||||||
|
return response.data.userIds;
|
||||||
|
} else {
|
||||||
|
return favorites;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
export const addFavorite = createAsyncThunk(
|
export const addFavorite = createAsyncThunk(
|
||||||
"favorites/addFavorite",
|
"favorites/addFavorite",
|
||||||
async (ids: { userId: string; toBeAdded: string }) => {
|
async (ids: { userId: string; toBeAdded: string }) => {
|
||||||
await axios.post(
|
if (ids.userId) {
|
||||||
`/users/${ids.userId}/favourites`,
|
await axios.post(
|
||||||
JSON.stringify({ userId: ids.toBeAdded })
|
`/users/${ids.userId}/favourites`,
|
||||||
);
|
JSON.stringify({ userId: ids.toBeAdded })
|
||||||
return ids.toBeAdded;
|
);
|
||||||
|
return ids.toBeAdded;
|
||||||
|
} else {
|
||||||
|
return ids.toBeAdded;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
export const removeFavorite = createAsyncThunk(
|
export const removeFavorite = createAsyncThunk(
|
||||||
"favorites/removeFavorite",
|
"favorites/removeFavorite",
|
||||||
async (ids: { userId: string; toBeRemoved: string }) => {
|
async (ids: { userId: string; toBeRemoved: string }) => {
|
||||||
await axios.delete(`/users/${ids.userId}/favourites/${ids.toBeRemoved}`);
|
if (ids.userId) {
|
||||||
return ids.toBeRemoved;
|
await axios.delete(`/users/${ids.userId}/favourites/${ids.toBeRemoved}`);
|
||||||
|
return ids.toBeRemoved;
|
||||||
|
} else {
|
||||||
|
return ids.toBeRemoved;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
export const selectFavorites = (state: RootState) => state.favorites.favorites;
|
export const selectFavorites = (state: RootState) => state.favorites.favorites;
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import DetailedMeeting from "../../api-bodies/DetailedMeeting";
|
|||||||
import { RootState } from "../store";
|
import { RootState } from "../store";
|
||||||
import UserStatus from "../../api-bodies/UserStatus";
|
import UserStatus from "../../api-bodies/UserStatus";
|
||||||
import axios from "../../api/axios";
|
import axios from "../../api/axios";
|
||||||
|
import { meetings } from "../../api-bodies/MockData";
|
||||||
|
|
||||||
interface MeetingsAndUserStatusState {
|
interface MeetingsAndUserStatusState {
|
||||||
meetings: DetailedMeeting[];
|
meetings: DetailedMeeting[];
|
||||||
@ -47,21 +48,35 @@ export const meetingsAndUserStatusSlice = createSlice({
|
|||||||
export const fetchMeetings = createAsyncThunk(
|
export const fetchMeetings = createAsyncThunk(
|
||||||
"meetingsAndUserStatus/fetchMeetings",
|
"meetingsAndUserStatus/fetchMeetings",
|
||||||
async (uuid: string) => {
|
async (uuid: string) => {
|
||||||
const response = await axios.get(
|
if (uuid) {
|
||||||
`/users/${uuid}/meetings?start=1900-01-01&end=2100-01-01`
|
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<string, UserStatus> = {};
|
const meetings: DetailedMeeting[] = response.data.meetings;
|
||||||
meetings.forEach((meeting) => {
|
const userStatuses: Record<string, UserStatus> = {};
|
||||||
meeting.liveParticipantIds.forEach((uuid) => {
|
meetings.forEach((meeting) => {
|
||||||
userStatuses[uuid] = {
|
meeting.liveParticipantIds.forEach((uuid) => {
|
||||||
userId: uuid,
|
userStatuses[uuid] = {
|
||||||
inMeeting: true,
|
userId: uuid,
|
||||||
meetingId: meeting.meetingId,
|
inMeeting: true,
|
||||||
};
|
meetingId: meeting.meetingId,
|
||||||
|
};
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
return { userStatuses: userStatuses, meetings: meetings };
|
||||||
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 };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { RootState } from "../store";
|
|||||||
import UserLite from "../../api-bodies/UserLite";
|
import UserLite from "../../api-bodies/UserLite";
|
||||||
import axios from "../../api/axios";
|
import axios from "../../api/axios";
|
||||||
import UserFull from "../../api-bodies/UserFull";
|
import UserFull from "../../api-bodies/UserFull";
|
||||||
|
import { userLites, team } from "../../api-bodies/MockData";
|
||||||
|
|
||||||
interface TeamState {
|
interface TeamState {
|
||||||
user: string;
|
user: string;
|
||||||
@ -36,33 +37,41 @@ export const usersSlice = createSlice({
|
|||||||
export const fetchUsers = createAsyncThunk(
|
export const fetchUsers = createAsyncThunk(
|
||||||
"users/fetchUsers",
|
"users/fetchUsers",
|
||||||
async (uuid: string) => {
|
async (uuid: string) => {
|
||||||
const users: Record<string, UserLite> = {};
|
if (uuid) {
|
||||||
const team: TeamState = {
|
const users: Record<string, UserLite> = {};
|
||||||
user: "",
|
const team: TeamState = {
|
||||||
manager: "",
|
user: "",
|
||||||
sameManager: [],
|
manager: "",
|
||||||
directReports: [],
|
sameManager: [],
|
||||||
};
|
directReports: [],
|
||||||
// fetch userfull
|
};
|
||||||
const userResp = await axios.get(`/users/${uuid}`);
|
// fetch userfull
|
||||||
const user: UserFull = userResp.data.user;
|
const userResp = await axios.get(`/users/${uuid}`);
|
||||||
|
const user: UserFull = userResp.data.user;
|
||||||
|
|
||||||
users[user.userInfo.uuid] = user.userInfo;
|
users[user.userInfo.uuid] = user.userInfo;
|
||||||
users[user.manager.uuid] = user.manager;
|
users[user.manager.uuid] = user.manager;
|
||||||
|
|
||||||
team.user = user.userInfo.uuid;
|
team.user = user.userInfo.uuid;
|
||||||
team.manager = user.manager.uuid;
|
team.manager = user.manager.uuid;
|
||||||
|
|
||||||
user.userDirectReports.forEach((userLite) => {
|
user.userDirectReports.forEach((userLite) => {
|
||||||
users[userLite.uuid] = userLite;
|
users[userLite.uuid] = userLite;
|
||||||
team.directReports.push(userLite.uuid);
|
team.directReports.push(userLite.uuid);
|
||||||
});
|
});
|
||||||
user.managerDirectReports.forEach((userLite) => {
|
user.managerDirectReports.forEach((userLite) => {
|
||||||
users[userLite.uuid] = userLite;
|
users[userLite.uuid] = userLite;
|
||||||
team.sameManager.push(userLite.uuid);
|
team.sameManager.push(userLite.uuid);
|
||||||
});
|
});
|
||||||
console.log(users);
|
console.log(users);
|
||||||
return { users: users, team: team };
|
return { users: users, team: team };
|
||||||
|
} else {
|
||||||
|
const users: Record<string, UserLite> = {};
|
||||||
|
userLites.forEach((userLite) => {
|
||||||
|
users[userLite.uuid] = userLite;
|
||||||
|
});
|
||||||
|
return { users: users, team: team };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user