diff --git a/src/widgets/QuizDialog.tsx b/src/widgets/QuizDialog.tsx index 44cf2eb..e2c5517 100644 --- a/src/widgets/QuizDialog.tsx +++ b/src/widgets/QuizDialog.tsx @@ -1,28 +1,52 @@ import QuizAnswerer from "@/components/QuizAnswerer"; -import { Dialog } from "@mui/material"; +import CloseIcon from '@mui/icons-material/Close'; +import { Dialog, IconButton, Slide, SlideProps, SxProps, Theme } from "@mui/material"; +import { forwardRef } from "react"; +const SlideTransition = forwardRef((props, ref) => { + return ( + + ); +}); + interface Props { open?: boolean; quizId: string; + paperSx?: SxProps; + hideBackdrop?: boolean; + disableScrollLock?: boolean; onClose?: () => void; } -export default function QuizDialog({ open = true, quizId, onClose }: Props) { +export default function QuizDialog({ + open = true, + quizId, + paperSx = [], + hideBackdrop, + disableScrollLock, + onClose +}: Props) { return ( + + + ); } diff --git a/src/widgets/side/QuizSideButton.tsx b/src/widgets/side/QuizSideButton.tsx index f08bf92..c8d7d4c 100644 --- a/src/widgets/side/QuizSideButton.tsx +++ b/src/widgets/side/QuizSideButton.tsx @@ -1,8 +1,8 @@ -import { QuizAnswerer } from "@/index"; import lightTheme from "@/utils/themes/light"; -import { Box, Button, Grow, ThemeProvider } from "@mui/material"; +import { Button, ThemeProvider } from "@mui/material"; import { useState } from "react"; import { createPortal } from "react-dom"; +import QuizDialog from "../QuizDialog"; const PADDING = 10; @@ -10,65 +10,54 @@ const PADDING = 10; interface Props { quizId: string; position: "left" | "right"; - buttonColor?: string; + buttonBackgroundColor?: string; } -export default function QuizSideButton({ quizId, position, buttonColor }: Props) { +export default function QuizSideButton({ quizId, position, buttonBackgroundColor }: Props) { const [isQuizShown, setIsQuizShown] = useState(false); return createPortal( - {isQuizShown ? ( - - - - - - ) : ( - - )} + setIsQuizShown(false)} + hideBackdrop + disableScrollLock + paperSx={{ + position: "absolute", + bottom: PADDING, + right: position === "right" ? PADDING : undefined, + left: position === "left" ? PADDING : undefined, + height: `calc(min(calc(100% - ${PADDING * 2}px), 800px))`, + width: `calc(min(calc(100% - ${PADDING * 2}px), 600px))`, + m: 0, + }} + /> + , document.body );