"use client"; import React, { useContext, useEffect, useRef, useState } from "react"; import { BottomSheet } from "react-spring-bottom-sheet"; import Input from "plugins/Input/page"; import AppContext from "@ctx/AppContext"; import SimpleReactValidator from "simple-react-validator"; import { toast } from "react-toastify"; import Buttonbriz from "plugins/Buttonbriz/page"; const BottomSheetCreateShifts = (props) => { const CTX = useContext(AppContext); const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [dayOfWeeksCurrent, setDayOfWeeksCurrent] = useState(""); const [, forceUpdate] = useState(); const startAtTimeShift = CTX.state.startAtTimeShift; const endAtTimeShift = CTX.state.endAtTimeShift; const goToEditShift = CTX.state.goToEditShift; const idEditShift = CTX.state.idEditShift; const shiftData = CTX.state.shiftData; const validator = useRef( new SimpleReactValidator({ messages: { required: "پر کردن این فیلد الزامی میباشد", }, element: (message) => ( <>
{message}
), }) ); const clear = () => { setDayOfWeeksCurrent(""); setDescription(""); setTitle(""); // CTX.setEndAtTimeShift(["00", "00"]); // CTX.setStartAtTimeShift(["00", "00"]); }; const body = { title, description, endAt: endAtTimeShift[0] + ":" + endAtTimeShift[1] + ":00", startAt: startAtTimeShift[0] + ":" + startAtTimeShift[1] + ":00", }; const bodyUpdate = { title, description, endAt: endAtTimeShift[0] + ":" + endAtTimeShift[1] + ":00", startAt: startAtTimeShift[0] + ":" + startAtTimeShift[1] + ":00", id: shiftData.id, }; const handleCreateShift = (update) => { if (validator.current.allValid()) { if (update == "UPDATE") { CTX.UpdateShift(bodyUpdate); } else { CTX.CreateShift(body); } } else { toast.error("پرکردن همه ی فیلد ها واجب است", { position: "bottom-right", autoClose: 2000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); validator.current.showMessages(); forceUpdate(1); } }; console.log(body); const handleBottomSheetCreateShift = (e) => { if (e.type == "OPEN") { if (goToEditShift) { CTX.GetShift(idEditShift); } } else if (e.type == "CLOSE") { CTX.setGoToEditShift(false); CTX.setIdEditShift(null); CTX.setShiftData([]); // clear(); } }; useEffect(() => { if (goToEditShift) { setTitle(shiftData.title); setDescription(shiftData.description); CTX.setStartAtTimeShift([ shiftData.startAt.split(":")[0], shiftData.startAt.split(":")[1], ]); CTX.setEndAtTimeShift([ shiftData.endAt.split(":")[0], shiftData.endAt.split(":")[1], ]); } }, [shiftData]); return ( handleBottomSheetCreateShift(e)} open={CTX.state.BottomSheetCreateShiftsOpen} onDismiss={() => CTX.setBottomSheetCreateShiftsOpen(false)} blocking={false} >

افزودن شیفت کاری جدید

{ setTitle(e.target.value); validator.current.showMessageFor("title"); }} style="text-right" validator={true} validatorData={validator.current.message( "title", title, "required" )} />
{ validator.current.showMessageFor("startAt"); }} inputFocus={() => { CTX.setOpenTimePicker(true); CTX.setBottomSheetCreateShiftsOpen(false); CTX.setTimePickerOrder("CREATE-SHIFT-START"); }} style="text-right" validator={true} validatorData={validator.current.message( "startAtTimeShift", startAtTimeShift, "required" )} />
{ validator.current.showMessageFor("startAt"); }} inputFocus={() => { CTX.setOpenTimePicker(true); CTX.setBottomSheetCreateShiftsOpen(false); CTX.setTimePickerOrder("CREATE-SHIFT-END"); }} style="text-right" validator={true} validatorData={validator.current.message( "endAtTimeShift", endAtTimeShift, "required" )} />
{ setDescription(e.target.value); validator.current.showMessageFor("description"); }} textarea={true} style="text-right" />
{goToEditShift ? ( handleCreateShift("UPDATE")} subButton={true} subButtonTitle="حذف شیفت" subButtonEvent={() => CTX.DeleteShift(idEditShift)} /> ) : ( handleCreateShift()} /> )}
); }; export default BottomSheetCreateShifts;