analytica-frontend-lib 1.1.33 → 1.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CheckBox/index.d.mts +1 -1
- package/dist/CheckBox/index.d.ts +1 -1
- package/dist/Quiz/index.js +71 -28
- package/dist/Quiz/index.js.map +1 -1
- package/dist/Quiz/index.mjs +71 -28
- package/dist/Quiz/index.mjs.map +1 -1
- package/dist/Quiz/useQuizStore/index.d.mts +10 -2
- package/dist/Quiz/useQuizStore/index.d.ts +10 -2
- package/dist/Quiz/useQuizStore/index.js +11 -0
- package/dist/Quiz/useQuizStore/index.js.map +1 -1
- package/dist/Quiz/useQuizStore/index.mjs +10 -0
- package/dist/Quiz/useQuizStore/index.mjs.map +1 -1
- package/dist/Radio/index.d.mts +2 -2
- package/dist/Radio/index.d.ts +2 -2
- package/dist/Search/index.d.mts +1 -1
- package/dist/Search/index.d.ts +1 -1
- package/dist/Whiteboard/index.js +2 -2
- package/dist/Whiteboard/index.js.map +1 -1
- package/dist/Whiteboard/index.mjs +3 -3
- package/dist/Whiteboard/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +84 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +84 -31
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/Search/index.d.mts
CHANGED
|
@@ -22,6 +22,6 @@ declare const Search: react.ForwardRefExoticComponent<{
|
|
|
22
22
|
containerClassName?: string;
|
|
23
23
|
/** Callback when clear button is clicked */
|
|
24
24
|
onClear?: () => void;
|
|
25
|
-
} & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
25
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onSelect"> & react.RefAttributes<HTMLInputElement>>;
|
|
26
26
|
|
|
27
27
|
export { Search as default };
|
package/dist/Search/index.d.ts
CHANGED
|
@@ -22,6 +22,6 @@ declare const Search: react.ForwardRefExoticComponent<{
|
|
|
22
22
|
containerClassName?: string;
|
|
23
23
|
/** Callback when clear button is clicked */
|
|
24
24
|
onClear?: () => void;
|
|
25
|
-
} & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
25
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onSelect"> & react.RefAttributes<HTMLInputElement>>;
|
|
26
26
|
|
|
27
27
|
export { Search as default };
|
package/dist/Whiteboard/index.js
CHANGED
|
@@ -128,10 +128,10 @@ var Whiteboard = ({
|
|
|
128
128
|
{
|
|
129
129
|
type: "button",
|
|
130
130
|
onClick: () => handleDownload(image),
|
|
131
|
-
className: "absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
131
|
+
className: "cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
132
132
|
"aria-label": `Download ${image.title || "imagem"}`,
|
|
133
133
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
134
|
-
import_phosphor_react.
|
|
134
|
+
import_phosphor_react.ArrowsOut,
|
|
135
135
|
{
|
|
136
136
|
size: 24,
|
|
137
137
|
weight: "regular",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/Whiteboard/Whiteboard.tsx","../../src/utils/utils.ts"],"sourcesContent":["import { HTMLAttributes, useCallback, useState } from 'react';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/components/Whiteboard/Whiteboard.tsx","../../src/utils/utils.ts"],"sourcesContent":["import { HTMLAttributes, useCallback, useState } from 'react';\nimport { ArrowsOut } from 'phosphor-react';\nimport { cn } from '../../utils/utils';\n\n// Design constants for critical layout dimensions\nconst IMAGE_WIDTH = 225;\nconst IMAGE_HEIGHT = 90;\n\n/**\n * Whiteboard image item interface\n */\nexport interface WhiteboardImage {\n id: string;\n imageUrl: string;\n title?: string;\n}\n\n/**\n * Whiteboard component props interface\n */\nexport interface WhiteboardProps extends HTMLAttributes<HTMLDivElement> {\n /** Array of images to display in the whiteboard */\n images: WhiteboardImage[];\n /** Whether to show download button on images */\n showDownload?: boolean;\n /** Custom className for the container */\n className?: string;\n /** Callback when download button is clicked */\n onDownload?: (image: WhiteboardImage) => void;\n /** Maximum number of images to display per row on desktop */\n imagesPerRow?: 2 | 3 | 4;\n}\n\n/**\n * Whiteboard component for displaying classroom board images\n * @param props Component properties\n * @returns Whiteboard component\n */\nconst Whiteboard = ({\n images,\n showDownload = true,\n className,\n onDownload,\n imagesPerRow = 2,\n ...rest\n}: WhiteboardProps) => {\n // State to track images that failed to load\n const [imageErrors, setImageErrors] = useState<Set<string>>(new Set());\n\n /**\n * Handle image download\n */\n const handleDownload = useCallback(\n (image: WhiteboardImage) => {\n if (onDownload) {\n onDownload(image);\n } else {\n const link = document.createElement('a');\n link.href = image.imageUrl;\n link.download = image.title || `whiteboard-${image.id}`;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n },\n [onDownload]\n );\n\n /**\n * Handle image loading error\n */\n const handleImageError = useCallback((imageId: string) => {\n setImageErrors((prev) => new Set(prev).add(imageId));\n }, []);\n\n const gridColsClass =\n images?.length === 1\n ? 'grid-cols-1'\n : {\n 2: 'grid-cols-1 sm:grid-cols-2',\n 3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',\n }[imagesPerRow];\n\n // Let CSS handle sizing responsively\n\n if (!images || images.length === 0) {\n return (\n <div\n className={cn(\n 'flex items-center justify-center p-8 bg-white border border-gray-100 rounded-xl',\n className\n )}\n {...rest}\n >\n <p className=\"text-gray-400 text-sm\">Nenhuma imagem disponível</p>\n </div>\n );\n }\n\n return (\n <div\n className={cn(\n 'flex flex-col bg-white border border-gray-100 p-4 gap-2 rounded-xl w-fit mx-auto',\n className\n )}\n {...rest}\n >\n <div className={cn('grid gap-4', gridColsClass)}>\n {images.map((image) => (\n <div\n key={image.id}\n className=\"relative group overflow-hidden bg-gray-100 rounded-lg\"\n style={{\n width: `${IMAGE_WIDTH}px`,\n }}\n >\n <div\n className=\"relative\"\n style={{\n width: `${IMAGE_WIDTH}px`,\n height: `${IMAGE_HEIGHT}px`,\n }}\n >\n {imageErrors.has(image.id) ? (\n <div className=\"absolute inset-0 flex items-center justify-center bg-gray-200\">\n <p className=\"text-gray-500 text-sm text-center px-2\">\n Imagem indisponível\n </p>\n </div>\n ) : (\n <>\n <img\n src={image.imageUrl}\n alt={image.title || `Whiteboard ${image.id}`}\n className=\"absolute inset-0 w-full h-full object-cover\"\n loading=\"lazy\"\n onError={() => handleImageError(image.id)}\n />\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/20 to-transparent\" />\n </>\n )}\n </div>\n {showDownload && (\n <button\n type=\"button\"\n onClick={() => handleDownload(image)}\n className=\"cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6\"\n aria-label={`Download ${image.title || 'imagem'}`}\n >\n <ArrowsOut\n size={24}\n weight=\"regular\"\n className=\"text-white group-hover/button:scale-110 transition-transform duration-200\"\n />\n </button>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default Whiteboard;\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/components/Whiteboard/Whiteboard.tsx
|
|
2
2
|
import { useCallback, useState } from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { ArrowsOut } from "phosphor-react";
|
|
4
4
|
|
|
5
5
|
// src/utils/utils.ts
|
|
6
6
|
import { clsx } from "clsx";
|
|
@@ -104,10 +104,10 @@ var Whiteboard = ({
|
|
|
104
104
|
{
|
|
105
105
|
type: "button",
|
|
106
106
|
onClick: () => handleDownload(image),
|
|
107
|
-
className: "absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
107
|
+
className: "cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
108
108
|
"aria-label": `Download ${image.title || "imagem"}`,
|
|
109
109
|
children: /* @__PURE__ */ jsx(
|
|
110
|
-
|
|
110
|
+
ArrowsOut,
|
|
111
111
|
{
|
|
112
112
|
size: 24,
|
|
113
113
|
weight: "regular",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/Whiteboard/Whiteboard.tsx","../../src/utils/utils.ts"],"sourcesContent":["import { HTMLAttributes, useCallback, useState } from 'react';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/components/Whiteboard/Whiteboard.tsx","../../src/utils/utils.ts"],"sourcesContent":["import { HTMLAttributes, useCallback, useState } from 'react';\nimport { ArrowsOut } from 'phosphor-react';\nimport { cn } from '../../utils/utils';\n\n// Design constants for critical layout dimensions\nconst IMAGE_WIDTH = 225;\nconst IMAGE_HEIGHT = 90;\n\n/**\n * Whiteboard image item interface\n */\nexport interface WhiteboardImage {\n id: string;\n imageUrl: string;\n title?: string;\n}\n\n/**\n * Whiteboard component props interface\n */\nexport interface WhiteboardProps extends HTMLAttributes<HTMLDivElement> {\n /** Array of images to display in the whiteboard */\n images: WhiteboardImage[];\n /** Whether to show download button on images */\n showDownload?: boolean;\n /** Custom className for the container */\n className?: string;\n /** Callback when download button is clicked */\n onDownload?: (image: WhiteboardImage) => void;\n /** Maximum number of images to display per row on desktop */\n imagesPerRow?: 2 | 3 | 4;\n}\n\n/**\n * Whiteboard component for displaying classroom board images\n * @param props Component properties\n * @returns Whiteboard component\n */\nconst Whiteboard = ({\n images,\n showDownload = true,\n className,\n onDownload,\n imagesPerRow = 2,\n ...rest\n}: WhiteboardProps) => {\n // State to track images that failed to load\n const [imageErrors, setImageErrors] = useState<Set<string>>(new Set());\n\n /**\n * Handle image download\n */\n const handleDownload = useCallback(\n (image: WhiteboardImage) => {\n if (onDownload) {\n onDownload(image);\n } else {\n const link = document.createElement('a');\n link.href = image.imageUrl;\n link.download = image.title || `whiteboard-${image.id}`;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n },\n [onDownload]\n );\n\n /**\n * Handle image loading error\n */\n const handleImageError = useCallback((imageId: string) => {\n setImageErrors((prev) => new Set(prev).add(imageId));\n }, []);\n\n const gridColsClass =\n images?.length === 1\n ? 'grid-cols-1'\n : {\n 2: 'grid-cols-1 sm:grid-cols-2',\n 3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',\n }[imagesPerRow];\n\n // Let CSS handle sizing responsively\n\n if (!images || images.length === 0) {\n return (\n <div\n className={cn(\n 'flex items-center justify-center p-8 bg-white border border-gray-100 rounded-xl',\n className\n )}\n {...rest}\n >\n <p className=\"text-gray-400 text-sm\">Nenhuma imagem disponível</p>\n </div>\n );\n }\n\n return (\n <div\n className={cn(\n 'flex flex-col bg-white border border-gray-100 p-4 gap-2 rounded-xl w-fit mx-auto',\n className\n )}\n {...rest}\n >\n <div className={cn('grid gap-4', gridColsClass)}>\n {images.map((image) => (\n <div\n key={image.id}\n className=\"relative group overflow-hidden bg-gray-100 rounded-lg\"\n style={{\n width: `${IMAGE_WIDTH}px`,\n }}\n >\n <div\n className=\"relative\"\n style={{\n width: `${IMAGE_WIDTH}px`,\n height: `${IMAGE_HEIGHT}px`,\n }}\n >\n {imageErrors.has(image.id) ? (\n <div className=\"absolute inset-0 flex items-center justify-center bg-gray-200\">\n <p className=\"text-gray-500 text-sm text-center px-2\">\n Imagem indisponível\n </p>\n </div>\n ) : (\n <>\n <img\n src={image.imageUrl}\n alt={image.title || `Whiteboard ${image.id}`}\n className=\"absolute inset-0 w-full h-full object-cover\"\n loading=\"lazy\"\n onError={() => handleImageError(image.id)}\n />\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/20 to-transparent\" />\n </>\n )}\n </div>\n {showDownload && (\n <button\n type=\"button\"\n onClick={() => handleDownload(image)}\n className=\"cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6\"\n aria-label={`Download ${image.title || 'imagem'}`}\n >\n <ArrowsOut\n size={24}\n weight=\"regular\"\n className=\"text-white group-hover/button:scale-110 transition-transform duration-200\"\n />\n </button>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default Whiteboard;\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -44,7 +44,7 @@ export { createZustandAuthAdapter } from './Auth/zustandAuthAdapter/index.mjs';
|
|
|
44
44
|
export { useUrlAuthentication } from './Auth/useUrlAuthentication/index.mjs';
|
|
45
45
|
export { useApiConfig } from './Auth/useApiConfig/index.mjs';
|
|
46
46
|
export { Quiz, QuizAlternative, QuizConnectDots, QuizContent, QuizDissertative, QuizFooter, QuizHeader, QuizHeaderResult, QuizImageQuestion, QuizListResult, QuizListResultByMateria, QuizMultipleChoice, QuizQuestionList, QuizResultHeaderTitle, QuizResultPerformance, QuizResultTitle, QuizTitle, QuizTrueOrFalse, getStatusBadge } from './Quiz/index.mjs';
|
|
47
|
-
export { ANSWER_STATUS, Activity, Lesson, QUESTION_DIFFICULTY, QUESTION_STATUS, QUESTION_TYPE, Question, QuestionResult, QuizState, Simulated, UserAnswerItem, useQuizStore } from './Quiz/useQuizStore/index.mjs';
|
|
47
|
+
export { ANSWER_STATUS, Activity, Lesson, QUESTION_DIFFICULTY, QUESTION_STATUS, QUESTION_TYPE, Question, QuestionResult, QuizState, SUBTYPE_ENUM, Simulated, UserAnswerItem, useQuizStore } from './Quiz/useQuizStore/index.mjs';
|
|
48
48
|
export { default as LoadingModal } from './LoadingModal/index.mjs';
|
|
49
49
|
export { default as NotificationCard, NotificationGroup, NotificationItem } from './NotificationCard/index.mjs';
|
|
50
50
|
import 'react/jsx-runtime';
|
|
@@ -134,6 +134,6 @@ declare const CheckboxListItem: react.ForwardRefExoticComponent<{
|
|
|
134
134
|
state?: CheckboxListState;
|
|
135
135
|
/** Additional CSS classes */
|
|
136
136
|
className?: string;
|
|
137
|
-
} & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
137
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "value" | "checked" | "type" | "name" | "onChange"> & react.RefAttributes<HTMLInputElement>>;
|
|
138
138
|
|
|
139
139
|
export { CheckboxList, CheckboxListItem };
|
package/dist/index.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export { createZustandAuthAdapter } from './Auth/zustandAuthAdapter/index.js';
|
|
|
44
44
|
export { useUrlAuthentication } from './Auth/useUrlAuthentication/index.js';
|
|
45
45
|
export { useApiConfig } from './Auth/useApiConfig/index.js';
|
|
46
46
|
export { Quiz, QuizAlternative, QuizConnectDots, QuizContent, QuizDissertative, QuizFooter, QuizHeader, QuizHeaderResult, QuizImageQuestion, QuizListResult, QuizListResultByMateria, QuizMultipleChoice, QuizQuestionList, QuizResultHeaderTitle, QuizResultPerformance, QuizResultTitle, QuizTitle, QuizTrueOrFalse, getStatusBadge } from './Quiz/index.js';
|
|
47
|
-
export { ANSWER_STATUS, Activity, Lesson, QUESTION_DIFFICULTY, QUESTION_STATUS, QUESTION_TYPE, Question, QuestionResult, QuizState, Simulated, UserAnswerItem, useQuizStore } from './Quiz/useQuizStore/index.js';
|
|
47
|
+
export { ANSWER_STATUS, Activity, Lesson, QUESTION_DIFFICULTY, QUESTION_STATUS, QUESTION_TYPE, Question, QuestionResult, QuizState, SUBTYPE_ENUM, Simulated, UserAnswerItem, useQuizStore } from './Quiz/useQuizStore/index.js';
|
|
48
48
|
export { default as LoadingModal } from './LoadingModal/index.js';
|
|
49
49
|
export { default as NotificationCard, NotificationGroup, NotificationItem } from './NotificationCard/index.js';
|
|
50
50
|
import 'react/jsx-runtime';
|
|
@@ -134,6 +134,6 @@ declare const CheckboxListItem: react.ForwardRefExoticComponent<{
|
|
|
134
134
|
state?: CheckboxListState;
|
|
135
135
|
/** Additional CSS classes */
|
|
136
136
|
className?: string;
|
|
137
|
-
} & Omit<InputHTMLAttributes<HTMLInputElement>, "
|
|
137
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "value" | "checked" | "type" | "name" | "onChange"> & react.RefAttributes<HTMLInputElement>>;
|
|
138
138
|
|
|
139
139
|
export { CheckboxList, CheckboxListItem };
|
package/dist/index.js
CHANGED
|
@@ -107,6 +107,7 @@ __export(src_exports, {
|
|
|
107
107
|
Radio: () => Radio_default,
|
|
108
108
|
RadioGroup: () => RadioGroup,
|
|
109
109
|
RadioGroupItem: () => RadioGroupItem,
|
|
110
|
+
SUBTYPE_ENUM: () => SUBTYPE_ENUM,
|
|
110
111
|
Search: () => Search_default,
|
|
111
112
|
Select: () => Select_default,
|
|
112
113
|
SelectContent: () => SelectContent,
|
|
@@ -7678,10 +7679,10 @@ var Whiteboard = ({
|
|
|
7678
7679
|
{
|
|
7679
7680
|
type: "button",
|
|
7680
7681
|
onClick: () => handleDownload(image),
|
|
7681
|
-
className: "absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
7682
|
+
className: "cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
7682
7683
|
"aria-label": `Download ${image.title || "imagem"}`,
|
|
7683
7684
|
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7684
|
-
import_phosphor_react19.
|
|
7685
|
+
import_phosphor_react19.ArrowsOut,
|
|
7685
7686
|
{
|
|
7686
7687
|
size: 24,
|
|
7687
7688
|
weight: "regular",
|
|
@@ -8082,6 +8083,15 @@ var ANSWER_STATUS = /* @__PURE__ */ ((ANSWER_STATUS2) => {
|
|
|
8082
8083
|
ANSWER_STATUS2["NAO_RESPONDIDO"] = "NAO_RESPONDIDO";
|
|
8083
8084
|
return ANSWER_STATUS2;
|
|
8084
8085
|
})(ANSWER_STATUS || {});
|
|
8086
|
+
var SUBTYPE_ENUM = /* @__PURE__ */ ((SUBTYPE_ENUM2) => {
|
|
8087
|
+
SUBTYPE_ENUM2["PROVA"] = "PROVA";
|
|
8088
|
+
SUBTYPE_ENUM2["ENEM_PROVA_1"] = "ENEM_PROVA_1";
|
|
8089
|
+
SUBTYPE_ENUM2["ENEM_PROVA_2"] = "ENEM_PROVA_2";
|
|
8090
|
+
SUBTYPE_ENUM2["VESTIBULAR"] = "VESTIBULAR";
|
|
8091
|
+
SUBTYPE_ENUM2["SIMULADO"] = "SIMULADO";
|
|
8092
|
+
SUBTYPE_ENUM2["SIMULADAO"] = "SIMULADAO";
|
|
8093
|
+
return SUBTYPE_ENUM2;
|
|
8094
|
+
})(SUBTYPE_ENUM || {});
|
|
8085
8095
|
var MINUTE_INTERVAL_MS = 6e4;
|
|
8086
8096
|
var useQuizStore = (0, import_zustand7.create)()(
|
|
8087
8097
|
(0, import_middleware.devtools)(
|
|
@@ -8767,26 +8777,65 @@ var QuizTitle = (0, import_react28.forwardRef)(
|
|
|
8767
8777
|
formatTime: formatTime2,
|
|
8768
8778
|
isStarted
|
|
8769
8779
|
} = useQuizStore();
|
|
8780
|
+
const [showExitConfirmation, setShowExitConfirmation] = (0, import_react28.useState)(false);
|
|
8770
8781
|
const totalQuestions = getTotalQuestions();
|
|
8771
8782
|
const quizTitle = getQuizTitle();
|
|
8772
|
-
|
|
8773
|
-
|
|
8774
|
-
|
|
8775
|
-
|
|
8776
|
-
|
|
8777
|
-
"flex flex-row justify-center items-center relative p-2",
|
|
8778
|
-
className
|
|
8779
|
-
),
|
|
8780
|
-
...props,
|
|
8781
|
-
children: [
|
|
8782
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
8783
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
8784
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
8785
|
-
] }),
|
|
8786
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "absolute right-2", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
|
|
8787
|
-
]
|
|
8783
|
+
const handleBackClick = () => {
|
|
8784
|
+
if (isStarted) {
|
|
8785
|
+
setShowExitConfirmation(true);
|
|
8786
|
+
} else {
|
|
8787
|
+
window.history.back();
|
|
8788
8788
|
}
|
|
8789
|
-
|
|
8789
|
+
};
|
|
8790
|
+
const handleConfirmExit = () => {
|
|
8791
|
+
setShowExitConfirmation(false);
|
|
8792
|
+
window.history.back();
|
|
8793
|
+
};
|
|
8794
|
+
const handleCancelExit = () => {
|
|
8795
|
+
setShowExitConfirmation(false);
|
|
8796
|
+
};
|
|
8797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8798
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8799
|
+
"div",
|
|
8800
|
+
{
|
|
8801
|
+
ref,
|
|
8802
|
+
className: cn(
|
|
8803
|
+
"flex flex-row justify-between items-center relative p-2",
|
|
8804
|
+
className
|
|
8805
|
+
),
|
|
8806
|
+
...props,
|
|
8807
|
+
children: [
|
|
8808
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8809
|
+
IconButton_default,
|
|
8810
|
+
{
|
|
8811
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CaretLeft, { size: 24 }),
|
|
8812
|
+
size: "md",
|
|
8813
|
+
"aria-label": "Voltar",
|
|
8814
|
+
onClick: handleBackClick
|
|
8815
|
+
}
|
|
8816
|
+
),
|
|
8817
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
8818
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
8819
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
8820
|
+
] }),
|
|
8821
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
|
|
8822
|
+
]
|
|
8823
|
+
}
|
|
8824
|
+
),
|
|
8825
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8826
|
+
AlertDialog,
|
|
8827
|
+
{
|
|
8828
|
+
isOpen: showExitConfirmation,
|
|
8829
|
+
onChangeOpen: setShowExitConfirmation,
|
|
8830
|
+
title: "Deseja sair?",
|
|
8831
|
+
description: "Se voc\xEA sair do simulado agora, todas as respostas ser\xE3o perdidas.",
|
|
8832
|
+
cancelButtonLabel: "Voltar e revisar",
|
|
8833
|
+
submitButtonLabel: "Sair Mesmo Assim",
|
|
8834
|
+
onSubmit: handleConfirmExit,
|
|
8835
|
+
onCancel: handleCancelExit
|
|
8836
|
+
}
|
|
8837
|
+
)
|
|
8838
|
+
] });
|
|
8790
8839
|
}
|
|
8791
8840
|
);
|
|
8792
8841
|
var QuizSubTitle = (0, import_react28.forwardRef)(
|
|
@@ -9870,17 +9919,21 @@ var QuizFooter = (0, import_react28.forwardRef)(
|
|
|
9870
9919
|
] });
|
|
9871
9920
|
}
|
|
9872
9921
|
);
|
|
9873
|
-
var QuizBadge = ({
|
|
9922
|
+
var QuizBadge = ({
|
|
9923
|
+
subtype
|
|
9924
|
+
}) => {
|
|
9874
9925
|
switch (subtype) {
|
|
9875
|
-
case "PROVA"
|
|
9876
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "
|
|
9877
|
-
case "
|
|
9878
|
-
|
|
9879
|
-
|
|
9880
|
-
|
|
9881
|
-
|
|
9882
|
-
case
|
|
9883
|
-
|
|
9926
|
+
case "PROVA" /* PROVA */:
|
|
9927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
|
|
9928
|
+
case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
|
|
9929
|
+
case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
|
|
9930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
|
|
9931
|
+
case "VESTIBULAR" /* VESTIBULAR */:
|
|
9932
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
|
|
9933
|
+
case "SIMULADO" /* SIMULADO */:
|
|
9934
|
+
case "SIMULADAO" /* SIMULADAO */:
|
|
9935
|
+
case void 0:
|
|
9936
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
|
|
9884
9937
|
default:
|
|
9885
9938
|
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
|
|
9886
9939
|
}
|
|
@@ -9896,7 +9949,7 @@ var QuizResultHeaderTitle = (0, import_react28.forwardRef)(({ className, ...prop
|
|
|
9896
9949
|
...props,
|
|
9897
9950
|
children: [
|
|
9898
9951
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
|
|
9899
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizBadge, { subtype: activeQuiz?.quiz.subtype ||
|
|
9952
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizBadge, { subtype: activeQuiz?.quiz.subtype || void 0 })
|
|
9900
9953
|
]
|
|
9901
9954
|
}
|
|
9902
9955
|
);
|
|
@@ -10427,6 +10480,7 @@ var NotificationCard_default = NotificationCard;
|
|
|
10427
10480
|
Radio,
|
|
10428
10481
|
RadioGroup,
|
|
10429
10482
|
RadioGroupItem,
|
|
10483
|
+
SUBTYPE_ENUM,
|
|
10430
10484
|
Search,
|
|
10431
10485
|
Select,
|
|
10432
10486
|
SelectContent,
|