import React from 'react'; import moment from 'moment'; import { Input, Select, Stack, Checkbox, Box, Text, Divider, Button, NumberInput, NumberInputField, NumberInputStepper, NumberIncrementStepper, NumberDecrementStepper, useNumberInput, } from '@chakra-ui/react' import { Formik, Field, Form } from 'formik'; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import TimePicker from 'react-time-picker'; import {create} from "./API/quiz"; interface a { name?: string, description?: string, config?: string, status?: string, fingerprinting?: boolean, repeatable?: boolean, note_prevented?: boolean, mail_notifications?: boolean, unique_answers?: boolean, pausable?: boolean, time_of_passing?: number, due_to?: number, limit?: number, question_cnt?: number } const statusValues: any = ['draft', 'template', 'stop', 'start'] export default () => { const [isSaved, setSaved] = React.useState(false) const [isSend, setSend] = React.useState(false) const Options = React.useMemo(() => () => ( statusValues.map((e:string,i:number)=> { return }) ), []); const { getInputProps, getIncrementButtonProps, getDecrementButtonProps } = useNumberInput({ min: 0, }) const input = getInputProps() return( { console.log(values) setSend(true) let inputBody:a = { "status": values.status, }; if (values.name.length !== 0) {inputBody.name = values.name} if (values.description.length !== 0) {inputBody.description = values.description} if (values.due_to !== null) {inputBody.due_to = Number(moment(values.due_to).format("x"))} if (values.due_to !== null) {console.log(moment(values.due_to).format("x"))} if (values.time_of_passing.length !== 0) {inputBody.time_of_passing = moment.duration(values.time_of_passing).asSeconds()} if (values.time_of_passing.length !== 0) {console.log(moment.duration(values.time_of_passing).asSeconds())} if (values.limit !== 0) {inputBody.limit = values.limit} if (values.fingerprinting) {inputBody.fingerprinting = true} if (values.repeatable) {inputBody.repeatable = true} if (values.note_prevented) {inputBody.note_prevented = true} if (values.mail_notifications) {inputBody.mail_notifications = true} if (values.unique_answers) {inputBody.unique_answers = true} if (values.pausable) {inputBody.pausable = true} console.log(inputBody) create.request({body: inputBody}) .then((e: any) => { console.log(e) console.log(e.message) setSaved(true) setSend(false) }) .catch((e: any) => { console.log(e) console.log(e.message) setSaved(false) setSend(false) }) }} > {({ values, setFieldValue }) => { return (
Название опроса (максимум 280 символов) Описание опроса Статус опроса { } Количество перепрохождений { setFieldValue("limit", Number(e.target.value)) }} /> Сохранить устройство Разрешить пользователям перепроходить опрос Сохранять статистику неполных прохождений Уведомлять по почте при каждом прохождении опроса Сохранять статистику только для уникального прохождения опроса Время прохождения опроса { if (e !== null) { setFieldValue("time_of_passing", e) } else { //При стирании значения пользователем затирается и последнее значение setFieldValue("time_of_passing", "") } }} value={values.time_of_passing} /> Разрешить ставить на паузу Дата проведения опроса { setFieldValue("due_to", e) }} minDate={new Date()} />
) }}
) }