diff --git a/backend/src/services/UserServices/CreateUserService.ts b/backend/src/services/UserServices/CreateUserService.ts index 7c62365..fd31b80 100644 --- a/backend/src/services/UserServices/CreateUserService.ts +++ b/backend/src/services/UserServices/CreateUserService.ts @@ -28,20 +28,31 @@ const CreateUserService = async ({ }: Request): Promise => { const schema = Yup.object().shape({ name: Yup.string().required().min(2), - email: Yup.string() - .email() - .required() - .test( - "Check-email", - "An user with this email already exists.", - async value => { - if (!value) return false; - const emailExists = await User.findOne({ - where: { email: value } - }); - return !emailExists; - } - ), + + email: Yup.string().required().test( + "Check-email", + "An user with this email already exists.", + async value => { + if (!value) return false; + const emailExists = await User.findOne({ + where: { email: value } + }); + return !emailExists; + } + ), + + // email: Yup.string().email().required().test( + // "Check-email", + // "An user with this email already exists.", + // async value => { + // if (!value) return false; + // const emailExists = await User.findOne({ + // where: { email: value } + // }); + // return !emailExists; + // } + // ), + password: Yup.string().required().min(5) }); diff --git a/backend/src/services/UserServices/UpdateUserService.ts b/backend/src/services/UserServices/UpdateUserService.ts index 114d557..6d0638c 100644 --- a/backend/src/services/UserServices/UpdateUserService.ts +++ b/backend/src/services/UserServices/UpdateUserService.ts @@ -31,7 +31,11 @@ const UpdateUserService = async ({ const schema = Yup.object().shape({ name: Yup.string().min(2), - email: Yup.string().email(), + + email: Yup.string().min(2), + + // email: Yup.string().email(), + profile: Yup.string(), password: Yup.string() }); diff --git a/frontend/src/components/ContactModal/index.js b/frontend/src/components/ContactModal/index.js index e4fad1f..8305524 100644 --- a/frontend/src/components/ContactModal/index.js +++ b/frontend/src/components/ContactModal/index.js @@ -58,7 +58,11 @@ const ContactSchema = Yup.object().shape({ .max(50, "Too Long!") .required("Required"), number: Yup.string().min(8, "Too Short!").max(50, "Too Long!"), - email: Yup.string().email("Invalid email"), + + email: Yup.string().min(2, "Too Short!") + .max(50, "Too Long!"), + + // email: Yup.string().email("Invalid email"), }); const ContactModal = ({ open, onClose, contactId, initialValues, onSave }) => { diff --git a/frontend/src/components/NotificationsPopOver/index.js b/frontend/src/components/NotificationsPopOver/index.js index c3bb70a..411b4d2 100644 --- a/frontend/src/components/NotificationsPopOver/index.js +++ b/frontend/src/components/NotificationsPopOver/index.js @@ -57,10 +57,13 @@ const NotificationsPopOver = () => { const [play] = useSound(alertSound); const soundAlertRef = useRef(); - const historyRef = useRef(history); - + const historyRef = useRef(history); const { handleLogout } = useContext(AuthContext); + + const [lastRef] = useState(+history.location.pathname.split("/")[2]) + + console.log('ticketIdRef: ',ticketIdRef, ' | lastRef: ',lastRef) useEffect(() => { @@ -78,7 +81,10 @@ const NotificationsPopOver = () => { }, [tickets]); useEffect(() => { - ticketIdRef.current = ticketIdUrl; + + console.log('888888888888888888888888888888888888888888888888888888888888888888') + + ticketIdRef.current = ticketIdUrl; }, [ticketIdUrl]); @@ -135,6 +141,9 @@ const NotificationsPopOver = () => { socket.on("ticket", data => { if (data.action === "updateUnread" || data.action === "delete") { + + + setNotifications(prevState => { const ticketIndex = prevState.findIndex(t => t.id === data.ticketId); if (ticketIndex !== -1) { @@ -165,27 +174,35 @@ const NotificationsPopOver = () => { (data.ticket.userId === user?.id || !data.ticket.userId) ) { - // console.log(`data.ticket.userId: ${data.ticket.userId }\n - // data.ticket.status: ${data.ticket.status}\n - // data.ticket.userId: ${data.ticket.userId }`) + setNotifications(prevState => { + + // console.log('prevState: ', prevState) + + // prevState.forEach((e)=>{ + // console.log(`>>> e.id: ${e.id} | data.ticket.Id: ${data.ticket.id}`) + // }) + const ticketIndex = prevState.findIndex(t => t.id === data.ticket.id); if (ticketIndex !== -1) { + // console.log(` data.ticket 1 `) prevState[ticketIndex] = data.ticket; return [...prevState]; } + // console.log(` data.ticket 2 `) return [data.ticket, ...prevState]; - }); + }); + - const shouldNotNotificate = - (data.message.ticketId === ticketIdRef.current && - document.visibilityState === "visible") || + const shouldNotNotificate = (data.message.ticketId === ticketIdRef.current && document.visibilityState === "visible") || (data.ticket.userId && data.ticket.userId !== user?.id) || data.ticket.isGroup || !data.ticket.userId; - if (shouldNotNotificate) return; - + if (shouldNotNotificate) return; + + //console.log('PASSOU!!!!!!!') + handleNotifications(data); } @@ -198,7 +215,7 @@ const NotificationsPopOver = () => { const handleNotifications = data => { const { message, contact, ticket } = data; - + const options = { body: `${message.body} - ${format(new Date(), "HH:mm")}`, icon: contact.profilePicUrl, @@ -276,14 +293,17 @@ const NotificationsPopOver = () => { {i18n.t("notifications.noTickets")} - ) : ( - notifications.map(ticket => ( + ) : ( + + notifications.map(ticket => ( )) )} + + ); diff --git a/frontend/src/components/TicketsList/index.js b/frontend/src/components/TicketsList/index.js index 3079ee8..bae4c01 100644 --- a/frontend/src/components/TicketsList/index.js +++ b/frontend/src/components/TicketsList/index.js @@ -75,6 +75,7 @@ const reducer = (state, action) => { if (action.type === "LOAD_TICKETS") { const newTickets = action.payload; + newTickets.forEach(ticket => { const ticketIndex = state.findIndex(t => t.id === ticket.id); if (ticketIndex !== -1) { @@ -152,9 +153,9 @@ const reducer = (state, action) => { } }; - const TicketsList = (props) => { - const { status, searchParam, showAll, selectedQueueIds, updateCount, style } = - props; +const TicketsList = (props) => { + const { status, searchParam, showAll, selectedQueueIds, updateCount, style } = + props; const classes = useStyles(); const [pageNumber, setPageNumber] = useState(1); const [ticketsList, dispatch] = useReducer(reducer, []); @@ -196,7 +197,7 @@ const reducer = (state, action) => { socket.emit("joinTickets", status); } else { socket.emit("joinNotification"); - } + } }); @@ -248,11 +249,14 @@ const reducer = (state, action) => { }, [status, showAll, user, selectedQueueIds]); useEffect(() => { - if (typeof updateCount === "function") { - updateCount(ticketsList.length); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [ticketsList]); + + + + if (typeof updateCount === "function") { + updateCount(ticketsList.length); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [ticketsList]); const loadMore = () => { setPageNumber(prevState => prevState + 1); @@ -269,7 +273,7 @@ const reducer = (state, action) => { }; return ( - + { {loading && } - + ); }; diff --git a/frontend/src/components/UserModal/index.js b/frontend/src/components/UserModal/index.js index 1d27a44..d827ef8 100644 --- a/frontend/src/components/UserModal/index.js +++ b/frontend/src/components/UserModal/index.js @@ -69,7 +69,12 @@ const UserSchema = Yup.object().shape({ .max(50, "Too Long!") .required("Required"), password: Yup.string().min(5, "Too Short!").max(50, "Too Long!"), - email: Yup.string().email("Invalid email").required("Required"), + + email: Yup.string().min(2, "Too Short!") + .max(50, "Too Long!") + .required("Required"), + + // email: Yup.string().email("Invalid email").required("Required"), }); const UserModal = ({ open, onClose, userId }) => { diff --git a/frontend/src/pages/Signup/index.js b/frontend/src/pages/Signup/index.js index df05692..54d9e1e 100644 --- a/frontend/src/pages/Signup/index.js +++ b/frontend/src/pages/Signup/index.js @@ -68,7 +68,12 @@ const UserSchema = Yup.object().shape({ .max(50, "Too Long!") .required("Required"), password: Yup.string().min(5, "Too Short!").max(50, "Too Long!"), - email: Yup.string().email("Invalid email").required("Required"), + + email: Yup.string().min(2, "Too Short!") + .max(50, "Too Long!") + .required("Required"), + + // email: Yup.string().email("Invalid email").required("Required"), }); const SignUp = () => {