frontAnswerer/src/widgets/button/OpenQuizButton.tsx

51 lines
1.6 KiB
TypeScript
Raw Normal View History

2024-04-24 15:56:11 +00:00
import lightTheme from "@/utils/themes/light";
import { Button, ThemeProvider } from "@mui/material";
import { useState } from "react";
import QuizDialog from "../shared/QuizDialog";
2024-04-24 15:56:11 +00:00
interface Props {
fixedSide?: "left" | "right";
quizId: string;
}
export default function OpenQuizButton({ quizId, fixedSide }: Props) {
2024-04-24 15:56:11 +00:00
const [isQuizDialogOpen, setIsQuizDialogOpen] = useState<boolean>(false);
return (
2024-04-24 15:56:11 +00:00
<ThemeProvider theme={lightTheme}>
<Button
className="pena-quiz-widget-button"
onClick={() => setIsQuizDialogOpen(p => !p)}
variant="contained"
sx={[
{
// normal styles
2024-04-24 15:56:11 +00:00
},
Boolean(fixedSide) && {
position: "fixed",
bottom: "50%",
},
fixedSide === "left" && {
left: 0,
transformOrigin: "left",
transform: "rotate(-90deg) translateY(50%) translateX(-50%)",
},
fixedSide === "right" && {
right: 0,
transformOrigin: "right",
transform: "rotate(-90deg) translateY(-50%) translateX(50%)",
},
]}
>
Пройти квиз
</Button>
<QuizDialog
open={isQuizDialogOpen}
quizId={quizId}
onClose={() => setIsQuizDialogOpen(false)}
/>
</ThemeProvider>
2024-04-24 15:56:11 +00:00
);
}