2023-04-17 02:27:22 +00:00
import {
Box ,
Button ,
FormControl , FormControlLabel , Link ,
MenuItem ,
Modal , Radio , RadioGroup ,
Select ,
SelectChangeEvent ,
Typography ,
useTheme
} from "@mui/material" ;
import * as React from "react" ;
import CustomButton from "../../components/CustomButton" ;
import SelectableButton from "../../components/CreateQuiz/SelectableButton" ;
import { useState } from "react" ;
2023-05-03 23:25:35 +00:00
import RadioCheck from "@ui_kit/RadioCheck" ;
import RadioIcon from "@ui_kit/RadioIcon" ;
2023-04-17 02:27:22 +00:00
type LogicForm = "conditions" | "results" ;
export default function BranchingForm() {
const theme = useTheme ( )
const [ open , setOpen ] = React . useState ( false ) ;
const handleOpen = ( ) = > setOpen ( true ) ;
const handleClose = ( ) = > setOpen ( false ) ;
const [ logicForm , setLogicForm ] = useState < LogicForm > ( "conditions" ) ;
const [ display , setDisplay ] = React . useState ( '1' ) ;
const handleChange = ( event : SelectChangeEvent ) = > {
setDisplay ( event . target . value ) ;
}
const [ value , setValue ] = React . useState ( '1' ) ;
const handleChangeRadio = ( event : React.ChangeEvent < HTMLInputElement > ) = > {
setValue ( ( event . target as HTMLInputElement ) . value ) ;
} ;
return (
< >
< Button onClick = { handleOpen } > о т к р ы т ь < / Button >
< Modal
open = { open }
onClose = { handleClose }
aria - labelledby = "modal-modal-title"
aria - describedby = "modal-modal-description"
>
< Box sx = { { position : 'absolute' as 'absolute' ,
top : '50%' ,
left : '50%' ,
transform : 'translate(-50%, -50%)' ,
maxWidth : '620px' ,
width : '100%' ,
bgcolor : 'background.paper' ,
borderRadius : '12px' ,
boxShadow : 24 ,
p : 0 , } } >
< Box
sx = { { display : 'flex' ,
padding : '20px' ,
borderRadius : '12px 12px 0 0' ,
background : theme.palette.background.default ,
} }
>
< Typography > У с л о в и я п о к а з а ф о р м ы < / Typography >
< / Box >
< Box sx = { {
padding : '20px' ,
display : 'flex' ,
flexDirection : 'column' ,
gap : '30px'
} } >
< Box sx = { {
display : 'flex' ,
gap : '20px' ,
alignItems : 'center'
} } >
< Typography sx = { { color : theme.palette.grey2.main } } > Л о г и к а п о к а з а ф о р м < / Typography >
< / Box >
< Box sx = { {
display : "flex" ,
gap : "10px" ,
} } >
< SelectableButton isSelected = { logicForm === "conditions" } onClick = { ( ) = > setLogicForm ( "conditions" ) } >
О т у с л о в и й
< / SelectableButton >
< SelectableButton isSelected = { logicForm === "results" } onClick = { ( ) = > setLogicForm ( "results" ) } >
С р е з у л ь т а т а м и
< / SelectableButton >
< / Box >
< Box sx = { {
display : 'flex' ,
flexDirection : 'column' ,
alignItems : 'baseline' ,
} } >
{ logicForm === 'conditions' ?
< >
< Link
component = "button"
variant = "body2"
sx = { { color : theme.palette.brightPurple.main } }
// onClick={() => {
// }}
>
Д о б а в и т ь у с л о в и е
< / Link >
< FormControl >
< RadioGroup
aria - labelledby = "demo-controlled-radio-buttons-group"
name = "controlled-radio-buttons-group"
value = { value }
onChange = { handleChangeRadio }
>
2023-05-03 23:25:35 +00:00
< FormControlLabel sx = { { color : theme.palette.grey2.main } } value = "1" control = { < Radio checkedIcon = { < RadioCheck / > } icon = { < RadioIcon / > } / > } label = "В с е условия обязательны" / >
< FormControlLabel sx = { { color : theme.palette.grey2.main } } value = "2" control = { < Radio checkedIcon = { < RadioCheck / > } icon = { < RadioIcon / > } / > } label = "Обязательно хотя бы одно условие" / >
2023-04-17 02:27:22 +00:00
< / RadioGroup >
< / FormControl >
< / >
:
< >
< Typography > У в а с п о к а ч т о н е т р е з у л ь т а т о в . < / Typography >
< Button > Д о б а в и т ь < / Button >
< / >
}
< / Box >
< Box sx = { { display : 'flex' , justifyContent : 'end' , gap : '10px' } } >
< CustomButton
variant = "outlined"
onClick = { handleClose }
sx = { {
border : ` 1px solid ${ theme . palette . brightPurple . main } ` ,
color : theme.palette.brightPurple.main ,
width : "auto" ,
ml : "auto" ,
px : "20px" ,
py : "9px" ,
} }
> О т м е н а < / CustomButton >
< CustomButton
variant = "contained"
sx = { {
backgroundColor : theme.palette.brightPurple.main ,
color : "white" ,
width : "auto" ,
px : "20px" ,
py : "9px" ,
} }
> Г о т о в о < / CustomButton >
< / Box >
< / Box >
< / Box >
< / Modal >
< / >
) ;
}