slider question preview supports range
This commit is contained in:
parent
040bf3acdd
commit
158471c2e0
@ -2,7 +2,7 @@ import { Slider } from "@mui/material";
|
||||
|
||||
type CustomSliderProps = {
|
||||
defaultValue?: number;
|
||||
value?: number;
|
||||
value?: number | number[];
|
||||
min?: number;
|
||||
max?: number;
|
||||
step?: number;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import { CustomSlider } from "@ui_kit/CustomSlider";
|
||||
import { QuizQuestionNumber } from "model/questionTypes/number";
|
||||
import { useState } from "react";
|
||||
import { useLayoutEffect, useState } from "react";
|
||||
|
||||
|
||||
interface Props {
|
||||
@ -9,7 +9,19 @@ interface Props {
|
||||
}
|
||||
|
||||
export default function Number({ question }: Props) {
|
||||
const [sliderValue, setSliderValue] = useState<number>(question.content.start);
|
||||
const [sliderValues, setSliderValues] = useState<number | number[]>(0);
|
||||
|
||||
const start = question.content.start;
|
||||
const min = parseInt(question.content.range.split("—")[0]);
|
||||
const max = parseInt(question.content.range.split("—")[1]);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
if (question.content.chooseRange) {
|
||||
setSliderValues([start, start + (max - start) / 2]);
|
||||
} else {
|
||||
setSliderValues(start);
|
||||
}
|
||||
}, [max, question.content.chooseRange, start]);
|
||||
|
||||
return (
|
||||
<Box sx={{
|
||||
@ -22,11 +34,11 @@ export default function Number({ question }: Props) {
|
||||
px: 2,
|
||||
}}>
|
||||
<CustomSlider
|
||||
value={sliderValue}
|
||||
onChange={v => setSliderValue(v as number)}
|
||||
min={parseInt(question.content.range.split("—")[0])}
|
||||
max={parseInt(question.content.range.split("—")[1])}
|
||||
defaultValue={question.content.start}
|
||||
value={sliderValues}
|
||||
onChange={value => setSliderValues(value)}
|
||||
min={min}
|
||||
max={max}
|
||||
defaultValue={start}
|
||||
step={question.content.step}
|
||||
/>
|
||||
</Box>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user