Merge branch 'fixes' into 'main'

200~touchstart

See merge request frontend/squiz!107
This commit is contained in:
Nastya 2024-01-04 21:42:33 +00:00
commit 0bf15043cb
4 changed files with 75 additions and 28 deletions

@ -135,7 +135,7 @@ export const usePopper = ({
setModalQuestionParentContentId(item.id());
setOpenedModalQuestions(true);
});
layoutElement.addEventListener("ontouchend", () => {
layoutElement.addEventListener("touchstart", () => {
//Узнаём грани, идущие от этой ноды
setModalQuestionParentContentId(item.id());
setOpenedModalQuestions(true);
@ -167,7 +167,7 @@ export const usePopper = ({
plusElement.addEventListener("mouseup", () => {
setStartCreate(node.id());
});
plusElement.addEventListener("ontouchend", () => {
plusElement.addEventListener("touchstart", () => {
setStartCreate(node.id());
});
@ -199,7 +199,7 @@ export const usePopper = ({
crossElement.addEventListener("mouseup", () => {
setStartRemove(node.id());
});
crossElement.addEventListener("ontouchend", () => {
crossElement.addEventListener("touchstart", () => {
setStartRemove(node.id());
});
@ -236,7 +236,7 @@ export const usePopper = ({
gearElement.addEventListener("mouseup", () => {
updateOpenedModalSettingsId(item.id());
});
gearElement.addEventListener("ontouchend", () => {
gearElement.addEventListener("touchstart", () => {
updateOpenedModalSettingsId(item.id());
});

@ -360,7 +360,7 @@ export const ResultCard = ({ resultContract, resultData }: Props) => {
border: "1px solid #9A9AAF",
background: " #F2F3F7",
color: "#9A9AAF",
mb: "30px",
my: "30px",
}}
>
Кнопка +
@ -368,7 +368,7 @@ export const ResultCard = ({ resultContract, resultData }: Props) => {
) : (
<Box
sx={{
mb: "30px",
my: "30px",
}}
>
<Box>

@ -6,13 +6,13 @@ import ArrowLeft from "@icons/ArrowLeftSP";
import LayoutCenteredIcon from "@icons/LayoutCenteredIcon";
import LayoutExpandedIcon from "@icons/LayoutExpandedIcon";
import LayoutStandartIcon from "@icons/LayoutStandartIcon";
import UploadIcon from "../../assets/icons/UploadIcon";
import MobilePhoneIcon from "@icons/MobilePhoneIcon";
import { QuizStartpageType } from "@model/quizSettings";
import InfoIcon from "@icons/InfoIcon";
import UploadBox from "@ui_kit/UploadBox";
import UploadIcon from "../../assets/icons/UploadIcon";
import {
Box,

@ -1,5 +1,5 @@
import { FC } from "react";
import { Box, Button } from "@mui/material";
import { Box, Button, ButtonBase, Tooltip, Typography, useTheme } from "@mui/material";
import CustomTextField from "./CustomTextField";
import { updateQuestion, uploadQuestionImage } from "@root/questions/actions";
import { CropModal, useCropModalState } from "@ui_kit/Modal/CropModal";
@ -9,6 +9,9 @@ import { UploadImageModal } from "../pages/Questions/UploadImage/UploadImageModa
import { useDisclosure } from "../utils/useDisclosure";
import { useCurrentQuiz } from "../stores/quizes/hooks";
import { AnyTypedQuizQuestion } from "@model/questionTypes/shared";
import UploadBox from "@ui_kit/UploadBox";
import UploadIcon from "@icons/UploadIcon";
import InfoIcon from "@icons/InfoIcon";
interface Iprops {
resultData: AnyTypedQuizQuestion;
@ -16,6 +19,7 @@ interface Iprops {
export const MediaSelectionAndDisplay: FC<Iprops> = ({ resultData }) => {
const quizQid = useCurrentQuiz()?.qid;
const theme = useTheme()
const {
isCropModalOpen,
openCropModal,
@ -26,7 +30,7 @@ export const MediaSelectionAndDisplay: FC<Iprops> = ({ resultData }) => {
} = useCropModalState();
const [isImageUploadOpen, openImageUploadModal, closeImageUploadModal] =
useDisclosure();
console.log(resultData)
async function handleImageUpload(file: File) {
const url = await uploadQuestionImage(
resultData.id,
@ -149,25 +153,68 @@ export const MediaSelectionAndDisplay: FC<Iprops> = ({ resultData }) => {
</Box>
)}
{!resultData.content.useImage && (
<>
<Box
sx={{
cursor: "pointer",
display: "flex",
alignItems: "center",
gap: "20px",
mb: "30px",
gap: "7px",
mt: "20px",
mb: "14px",
}}
>
<CustomTextField
placeholder="URL видео"
text={resultData.content.video ?? ""}
onChange={(e) =>
updateQuestion(resultData.id, (q) => {
q.content.video = e.target.value;
})
}
/>
<Typography
sx={{ fontWeight: 500, color: theme.palette.grey3.main }}
>
Добавить видео
</Typography>
<Tooltip title="Можно загрузить видео." placement="top">
<Box>
<InfoIcon />
</Box>
</Tooltip>
</Box>
<ButtonBase
component="label"
sx={{
justifyContent: "center",
height: "48px",
width: "48px",
display: "flex",
alignItems: "center",
my: "20px"
}}
>
<input
onChange={(event) => {
const file = event.target.files?.[0];
if (file) {
uploadQuestionImage(
resultData.id,
quizQid,
file,
(question, url) => {
question.content.video = url;
},
);
}
}}
hidden
accept=".mp4"
multiple
type="file"
/>
<UploadBox
icon={<UploadIcon />}
sx={{
height: "48px",
width: "48px",
}}
/>
</ButtonBase>
{resultData.content.video ? <video src={resultData.content.video} width="400" controls /> : null}
</>
)}
</Box>
);