push rasad front on new repo
This commit is contained in:
94
src/pages/Ticket.js
Normal file
94
src/pages/Ticket.js
Normal file
@@ -0,0 +1,94 @@
|
||||
import React, { useState } from "react";
|
||||
import {
|
||||
Box,
|
||||
Button,
|
||||
TextField,
|
||||
Stack,
|
||||
Typography,
|
||||
CircularProgress,
|
||||
} from "@mui/material";
|
||||
import { useFormik } from "formik";
|
||||
import * as Yup from "yup";
|
||||
|
||||
const TicketSchema = Yup.object().shape({
|
||||
title: Yup.string().required("عنوان تیکت الزامی است"),
|
||||
description: Yup.string().required("متن تیکت الزامی است"),
|
||||
});
|
||||
|
||||
const Ticket = () => {
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
|
||||
const formik = useFormik({
|
||||
initialValues: { title: "", description: "" },
|
||||
validationSchema: TicketSchema,
|
||||
onSubmit: async (values) => {
|
||||
setIsSubmitting(true);
|
||||
try {
|
||||
// Simulate a submission
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000));
|
||||
// console.log(values);
|
||||
} finally {
|
||||
setIsSubmitting(false);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
return (
|
||||
<Box display="flex" justifyContent="center" mt={4}>
|
||||
<Stack spacing={3} sx={{ width: { xs: "90%", md: "50%" } }}>
|
||||
<Typography
|
||||
variant="h5"
|
||||
style={{ color: "gray" }}
|
||||
textAlign="center"
|
||||
gutterBottom
|
||||
>
|
||||
ارسال پیام
|
||||
</Typography>
|
||||
<form onSubmit={formik.handleSubmit}>
|
||||
<Stack spacing={3}>
|
||||
<TextField
|
||||
id="title"
|
||||
name="title"
|
||||
label="عنوان تیکت"
|
||||
fullWidth
|
||||
value={formik.values.title}
|
||||
onChange={formik.handleChange}
|
||||
onBlur={formik.handleBlur}
|
||||
error={formik.touched.title && Boolean(formik.errors.title)}
|
||||
helperText={formik.touched.title && formik.errors.title}
|
||||
/>
|
||||
<TextField
|
||||
id="description"
|
||||
name="description"
|
||||
label="متن تیکت"
|
||||
multiline
|
||||
rows={4}
|
||||
fullWidth
|
||||
value={formik.values.description}
|
||||
onChange={formik.handleChange}
|
||||
onBlur={formik.handleBlur}
|
||||
error={
|
||||
formik.touched.description && Boolean(formik.errors.description)
|
||||
}
|
||||
helperText={
|
||||
formik.touched.description && formik.errors.description
|
||||
}
|
||||
/>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
type="submit"
|
||||
disabled={isSubmitting}
|
||||
sx={{ height: 48 }}
|
||||
startIcon={isSubmitting && <CircularProgress size={24} />}
|
||||
>
|
||||
{isSubmitting ? "در حال ارسال..." : "ارسال"}
|
||||
</Button>
|
||||
</Stack>
|
||||
</form>
|
||||
</Stack>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
export default Ticket;
|
||||
Reference in New Issue
Block a user