import React from "react"; import Modal from "./Modal"; import { Formik, Form } from "formik"; import * as Yup from "yup"; import IconWrapper from "./IconWrapper"; import FormField from "./FormField"; import { useDispatch } from "react-redux"; import { modalActions } from "../../store/modalSlice"; import useFetch from "../../hooks/useFetch"; import { contactsActions } from "../../store/contactsSlice"; import useSocket from "../../hooks/useSocket"; import { chatListActions } from "../../store/chatListSlice"; const formSchema = Yup.object().shape({ name: Yup.string().required("Field is required"), username: Yup.string().required("Field is required"), }); function NewContactForm() { const dispatch = useDispatch(); const { socketEmit } = useSocket(); const { reqFn } = useFetch({ method: "POST", url: "/contacts" }, (data) => { dispatch(contactsActions.addContact(data.data.contact)); socketEmit("user:joinRooms", { rooms: [data.data.contact.chatRoomId] }); dispatch( chatListActions.addToChatList({ newChat: { chatRoomId: data.data.contact.chatRoomId, roomType: "Private", latestMessage: {}, unreadMessagesCount: 0, pinned: false, mode: null, profile: { name: data.data.contact.name, ...data.data.contact.contactDetails, }, }, }) ); }); const addContact = async (values) => { await reqFn(values); dispatch(modalActions.closeModal({})); }; return ( {({ errors, touched, values }) => (
{/* Header */}
dispatch(modalActions.closeModal())}>

Add Contact

{/* Top */}
{/* Avatar */}
{values.name[0]} {values.name?.split(" ")?.[1]?.[0]}
{/* Forms */}
{/* Bottom */} )}
); } export default NewContactForm;