"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";
import { useLocale, useTranslations } from "next-intl";
const BottomSheetCreateRoutine = (props) => {
const CTX = useContext(AppContext);
const [title, setTitle] = useState("");
const [description, setDescription] = useState("");
const [, forceUpdate] = useState();
const t = useTranslations("BottomSheet");
const locale = useLocale();
const isRTL = locale === "fa";
const validator = useRef(
new SimpleReactValidator({
messages: {
required: "پر کردن این فیلد الزامی میباشد",
},
element: (message) => (
<>
{message}
>
),
})
);
const goToEditRoutine = CTX.state.goToEditRoutine;
const idEditRoutine = CTX.state.idEditRoutine;
const routineData = CTX.state.routineData;
const body = {
description,
name: title,
};
const bodyUpdate = {
description,
name: title,
id: idEditRoutine,
};
const clear = () => {
setTitle("");
setDescription("");
};
const handleCreateRoutine = (update) => {
if (validator.current.allValid()) {
if (update == "UPDATE") {
CTX.UpdateRoutine(bodyUpdate);
} else {
CTX.CreateRoutine(body);
}
} else {
toast.error("پرکردن همه ی فیلد ها واجب است", {
position: "bottom-right",
autoClose: 2000,
hideProgressBar: false,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
});
validator.current.showMessages();
forceUpdate(1);
}
};
const handleBottomSheetCreateRoutineOpen = (e) => {
if (e.type == "OPEN") {
if (goToEditRoutine) {
CTX.GetRoutine(idEditRoutine);
}
} else if (e.type == "CLOSE") {
clear();
CTX.setGoToEditRoutine(false);
CTX.setIdEditRoutine(null);
CTX.setRoutineData([]);
}
};
useEffect(() => {
if (goToEditRoutine) {
setTitle(routineData.name);
setDescription(routineData.description);
}
}, [routineData]);
return (
handleBottomSheetCreateRoutineOpen(e)}
open={CTX.state.BottomSheetCreateRoutineOpen}
onDismiss={() => CTX.setBottomSheetCreateRoutineOpen(false)}
blocking={true}
>
{t("BottomSheetCreateRoutineTitle")}{" "}
);
};
export default BottomSheetCreateRoutine;