Skip to content
This repository was archived by the owner on Nov 15, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions src/components/alerts/confirm.jsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
import Swal from 'sweetalert2';

const Confirm = (title, cb, text = `You won't be able to revert this`, icon = 'warning', confirmBtnText = 'Save') => {
Swal.fire({
title,
text,
icon,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: confirmBtnText,
}).then((result) => {
if (result.isConfirmed) {
cb(true);
}
})
}
const Confirm = (
title,
cb,
text = `You won't be able to revert this`,
icon = 'warning',
confirmBtnText = 'Save',
) => {
Swal.fire({
title,
text,
icon,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: confirmBtnText,
}).then((result) => {
if (result.isConfirmed) {
cb(true);
}
});
};

export default Confirm;
10 changes: 9 additions & 1 deletion src/components/alerts/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,12 @@ import ChainInput from './chaining';
import Confirm from './confirm';
import Toast from './toast';

export { NotifyAlert, RequestStatus, TimerAlert, HTMLAlert, ChainInput, Confirm, Toast };
export {
NotifyAlert,
RequestStatus,
TimerAlert,
HTMLAlert,
ChainInput,
Confirm,
Toast,
};
22 changes: 10 additions & 12 deletions src/components/alerts/toast.jsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
import toast, { Toaster } from 'react-hot-toast';



// const Toast = (toastMessage, toastType='success') => {
// // toast[toastType](toastMessage);

// toast('Here is your toast.');
// };

import React from 'react'
import React from 'react';

const Toast = () => {
const notify = () => toast('Here is your toast.');
return (
<div>
{notify()}
<Toaster />
</div>
)
}
const notify = () => toast('Here is your toast.');
return (
<div>
{notify()}
<Toaster />
</div>
);
};

export default Toast;
13 changes: 9 additions & 4 deletions src/pages/private/admin/manageQuestions.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ const ManageQuestions = () => {
useEffect(() => {
const fetchQuestions = async () => {
try {
const { data } = await http.get(`${apiUrl}/${endPoints.slamBook.allQuestions}`);
const { data } = await http.get(
`${apiUrl}/${endPoints.slamBook.allQuestions}`,
);
setQuestions(data);
setNoQuestions(false);
} catch (ex) {}
Expand Down Expand Up @@ -48,9 +50,12 @@ const ManageQuestions = () => {

const originalQuestions = [...questions];
try {
const { data } = await http.post(`${apiUrl}/${endPoints.slamBook.createQuestion}`, {
title: previousInputValue,
});
const { data } = await http.post(
`${apiUrl}/${endPoints.slamBook.createQuestion}`,
{
title: previousInputValue,
},
);
NotifyAlert('Successfully added the question', 'top');
setQuestions([data, ...questions]);
setNoQuestions(false);
Expand Down
4 changes: 1 addition & 3 deletions src/pages/private/admin/questions/listQuestion.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,7 @@ const ListQuestions = ({
onKeyDown={handleKeyPress}
/>
{inputValidationAlert.apply && (
<Alert severity="error">
{inputValidationAlert.message}
</Alert>
<Alert severity="error">{inputValidationAlert.message}</Alert>
)}
</div>
<div className="float-left">
Expand Down
2 changes: 1 addition & 1 deletion src/pages/private/user/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ export {
HomePage,
LogOut,
ResetPassword,
ModerateMessages
ModerateMessages,
};
32 changes: 11 additions & 21 deletions src/pages/private/user/messages/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ class PeopleCards extends Component {
persons,
sections,
departments,
people: persons && persons.length > 0 ? persons.sort((a, b) => a.userId - b.userId) : persons,
people:
persons && persons.length > 0
? persons.sort((a, b) => a.userId - b.userId)
: persons,
ProgressBar: !this.state.ProgressBar,
});
}
Expand All @@ -43,9 +46,7 @@ class PeopleCards extends Component {
filterPeople = (e) => {
const people = this.state.persons.filter(
(person) =>
person.name
.toLowerCase()
.search(e.target.value.trim().toLowerCase()) !== -1,
person.name.toLowerCase().search(e.target.value.trim().toLowerCase()) !== -1,
);
this.setState({ people, NoSearchResults: !people.length });
};
Expand All @@ -66,10 +67,7 @@ class PeopleCards extends Component {
return this.setState({
people: persons.filter((e) => {
if (sectionSelect !== 'ALL') {
return (
e.department === input.value &&
e.section === sectionSelect
);
return e.department === input.value && e.section === sectionSelect;
}
return e.department === input.value;
}),
Expand All @@ -93,10 +91,7 @@ class PeopleCards extends Component {
return this.setState({
people: persons.filter((e) => {
if (departmentSelect !== 'ALL') {
return (
e.section === input.value &&
e.department === departmentSelect
);
return e.section === input.value && e.department === departmentSelect;
}
return e.section === input.value;
}),
Expand All @@ -105,17 +100,12 @@ class PeopleCards extends Component {
};

handleModalOpen = (isModalOpen) => {
this.setState({ ...this.state, isModalOpen })
}
this.setState({ ...this.state, isModalOpen });
};

render() {
const {
ProgressBar,
departments,
sections,
people,
NoSearchResults,
} = this.state;
const { ProgressBar, departments, sections, people, NoSearchResults } =
this.state;

return (
<>
Expand Down
33 changes: 23 additions & 10 deletions src/pages/private/user/messages/modal.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,22 @@ import { apiUrl, endPoints } from '../../../../config.json';
import http from '../../../../services/httpService';
import { NotifyAlert, TimerAlert } from '../../../../components';

const ModalBox = ({ personId, personName, toggleOpen, triggerModal, modalValue, isAnonymousMessage }) => {
const ModalBox = ({
personId,
personName,
toggleOpen,
triggerModal,
modalValue,
isAnonymousMessage,
}) => {
const [ModalValue, setModalValue] = useState(() => modalValue);
const [isAnonymous, setIsAnonymous] = useState(() => isAnonymousMessage);

console.log('isAnonymousMessage...', isAnonymousMessage)
console.log('isAnonymousMessage...', isAnonymousMessage);

useEffect(() => {
setModalValue(modalValue)
}, [modalValue])
setModalValue(modalValue);
}, [modalValue]);

// useEffect(() => {
// setIsAnonymous();
Expand All @@ -38,7 +45,7 @@ const ModalBox = ({ personId, personName, toggleOpen, triggerModal, modalValue,
`${apiUrl}/${endPoints.messages.new}`,
messageObject,
);
console.log('data...', data)
console.log('data...', data);
setModalValue(data.message);
TimerAlert('Message sent successfully');
triggerModal(personId);
Expand All @@ -62,9 +69,7 @@ const ModalBox = ({ personId, personName, toggleOpen, triggerModal, modalValue,

<MDBModalBody>
<div className="form-group">
<p className="text-center">
Write a nice message for {personName} :)
</p>
<p className="text-center">Write a nice message for {personName} :)</p>
<textarea
className="form-control"
id={personId}
Expand All @@ -77,8 +82,16 @@ const ModalBox = ({ personId, personName, toggleOpen, triggerModal, modalValue,
</MDBModalBody>
<MDBModalFooter>
<span className="custom-control custom-checkbox">
<input type="checkbox" className="custom-control-input" id="defaultUnchecked" value={isAnonymous} onChange={() => setIsAnonymous(!isAnonymous)} />
<label className="custom-control-label" htmlFor="defaultUnchecked">Send Anonymously</label>
<input
type="checkbox"
className="custom-control-input"
id="defaultUnchecked"
value={isAnonymous}
onChange={() => setIsAnonymous(!isAnonymous)}
/>
<label className="custom-control-label" htmlFor="defaultUnchecked">
Send Anonymously
</label>
</span>
<div>
<button
Expand Down
10 changes: 8 additions & 2 deletions src/pages/private/user/messages/single.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ const useStyles = makeStyles(() => ({
},
}));

const UserCard = ({ person, personName, personBio, personImageUrl, isModalOpen }) => {
const UserCard = ({
person,
personName,
personBio,
personImageUrl,
isModalOpen,
}) => {
const [modalOpen, setModalOpen] = useState(false);
const [modalValue, setModalValue] = useState('');
const [isAnonymousMessage, setIsAnonymousMessage] = useState(false);
Expand All @@ -34,7 +40,7 @@ const UserCard = ({ person, personName, personBio, personImageUrl, isModalOpen }
};

const triggerModal = () => {
getUserMessage()
getUserMessage();
isModalOpen(!modalOpen);
setModalOpen(!modalOpen);
};
Expand Down
73 changes: 40 additions & 33 deletions src/pages/private/user/moderation/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,48 @@ import React, { useState, useEffect } from 'react';
import toast, { Toaster } from 'react-hot-toast';
import ListQuestions from './manageQuestion';
import { http } from '../../../../services';
import { apiUrl, endPoints } from '../../../../config.json'
import { apiUrl, endPoints } from '../../../../config.json';

const ModerateMessages = () => {

const [messages, setMessages] = useState([]);
useEffect(() => {
const fetchMessages = async() => {
const { data } = await http.get(`${apiUrl}/${endPoints.messages.forLoggedInUser}`)
setMessages(data);
};
fetchMessages();
}, [messages.length]);

const handleDelete = async(messageId) => {
const confirmDelete = window.confirm('Are you sure you want to delete this message?\nYou wont be able to revert this later.');
if (confirmDelete) {
const messagesArr = [...messages];
try {
const filteredMessages = messages.filter(message => message._id !== messageId);
setMessages([...filteredMessages]);
toast.success('Successfully Deleted Message');
await http.delete(`${apiUrl}/${endPoints.messages.deleteByMessageId}/${messageId}`);
} catch (ex) {
setMessages(messagesArr);
toast.error('Oops, please try again later!')
}
}
const [messages, setMessages] = useState([]);
useEffect(() => {
const fetchMessages = async () => {
const { data } = await http.get(
`${apiUrl}/${endPoints.messages.forLoggedInUser}`,
);
setMessages(data);
};
fetchMessages();
}, [messages.length]);

const handleDelete = async (messageId) => {
const confirmDelete = window.confirm(
'Are you sure you want to delete this message?\nYou wont be able to revert this later.',
);
if (confirmDelete) {
const messagesArr = [...messages];
try {
const filteredMessages = messages.filter(
(message) => message._id !== messageId,
);
setMessages([...filteredMessages]);
toast.success('Successfully Deleted Message');
await http.delete(
`${apiUrl}/${endPoints.messages.deleteByMessageId}/${messageId}`,
);
} catch (ex) {
setMessages(messagesArr);
toast.error('Oops, please try again later!');
}
}
};

return (
<>
<ListQuestions messages={messages} handleDelete={handleDelete} />
<Toaster />
</>
)
}
return (
<>
<ListQuestions messages={messages} handleDelete={handleDelete} />
<Toaster />
</>
);
};

export default ModerateMessages
export default ModerateMessages;
Loading