diff --git a/package.json b/package.json
index 6da058e8..f7d47d4b 100755
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"@craco/craco": "^7.0.0",
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
- "@frontend/kitui": "^1.0.86",
+ "@frontend/kitui": "^1.0.87",
"@frontend/squzanswerer": "^1.0.61",
"@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14",
@@ -86,7 +86,7 @@
]
},
"devDependencies": {
- "@emoji-mart/data": "^1.1.2",
+ "@emoji-mart/data": "^1.2.1",
"@emoji-mart/react": "^1.1.1",
"@types/cytoscape-popper": "^2.0.4",
"@types/react-beautiful-dnd": "^13.1.4",
diff --git a/public/index.html b/public/index.html
index 7e0e5c5a..0df06af1 100755
--- a/public/index.html
+++ b/public/index.html
@@ -174,6 +174,18 @@
}
+
diff --git a/src/App.tsx b/src/App.tsx
index 5626f416..68b6ad6d 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -23,6 +23,7 @@ import { InfoPrivilege } from "./pages/InfoPrivilege";
import AmoTokenExpiredDialog from "./pages/IntegrationsPage/IntegrationsModal/Amo/AmoTokenExpiredDialog";
import Landing from "./pages/Landing/Landing";
import Main from "./pages/main";
+import { ErrorBoundary } from "react-error-boundary";
const MyQuizzesFull = lazy(() => import("./pages/createQuize/MyQuizzesFull"));
const QuizGallery = lazy(() => import("./pages/createQuize/QuizGallery"));
@@ -66,6 +67,7 @@ const LazyLoading = ({ children, fallback }: SuspenseProps) => (
);
export default function App() {
+ window.LoadingObserver = false;
const userId = useUserStore((state) => state.userId);
const location = useLocation();
const navigate = useNavigate();
diff --git a/src/api/makeRequest.ts b/src/api/makeRequest.ts
index 930a89b3..0993cb38 100644
--- a/src/api/makeRequest.ts
+++ b/src/api/makeRequest.ts
@@ -8,6 +8,7 @@ import { clearUserData } from "@root/user";
import { clearQuizData } from "@root/quizes/store";
import type { AxiosResponse } from "axios";
+import { selectSendingMethod } from "@/ui_kit/FloatingSupportChat/utils";
interface MakeRequest {
method?: Method | undefined;
@@ -32,6 +33,11 @@ export const makeRequest = async (
} catch (nativeError) {
const error = nativeError as AxiosError;
+ if (window.location.hostname !== 'localhost') selectSendingMethod({
+ messageField: `status: ${error.response?.status}. Message ${(error.response?.data as ExtendedAxiosResponse)?.message}`,
+ isSnackbar: false,
+ systemError: true
+ });
if (
error.response?.status === 400 &&
(error.response?.data as ExtendedAxiosResponse)?.message ===
diff --git a/src/api/tariff.ts b/src/api/tariff.ts
index a1b4ea3d..a0be6e70 100644
--- a/src/api/tariff.ts
+++ b/src/api/tariff.ts
@@ -12,7 +12,7 @@ export const getTariffs = async (
try {
const tariffs = await makeRequest({
method: "GET",
- url: `${API_URL}?page=${page}&limit=100`,
+ url: `${API_URL}/getList?page=${page}&limit=100`,
});
return [tariffs];
} catch (nativeError) {
diff --git a/src/api/ticket.ts b/src/api/ticket.ts
index 48404ed3..5056dc64 100644
--- a/src/api/ticket.ts
+++ b/src/api/ticket.ts
@@ -18,6 +18,7 @@ const API_URL = `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0`;
export const sendTicketMessage = async (
ticketId: string,
message: string,
+ systemError: boolean
): Promise<[null, string?]> => {
try {
const sendTicketMessageResponse = await makeRequest<
@@ -27,7 +28,8 @@ export const sendTicketMessage = async (
url: `${API_URL}/send`,
method: "POST",
useToken: true,
- body: { ticket: ticketId, message: message, lang: "ru", files: [] },
+ body: { ticket: ticketId, message: message, lang: "ru", files: [], system: systemError },
+
});
return [sendTicketMessageResponse];
@@ -82,11 +84,12 @@ export const sendFile = async (
export const createTicket = async (
message: string,
useToken: boolean,
+ systemError: boolean
): Promise<[CreateTicketResponse | null, string?]> => {
try {
const createdTicket = await createTicketRequest({
url: `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0/create`,
- body: { Title: "Unauth title", Message: message },
+ body: { Title: "Unauth title", Message: message, system: systemError },
useToken,
});
diff --git a/src/assets/quiz-templates/auto/auto-1.jpg b/src/assets/quiz-templates/auto/auto-1.jpg
index 4f3d9fac..ce04341c 100644
Binary files a/src/assets/quiz-templates/auto/auto-1.jpg and b/src/assets/quiz-templates/auto/auto-1.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-10.jpg b/src/assets/quiz-templates/auto/auto-10.jpg
index 474c8c1a..f63110be 100644
Binary files a/src/assets/quiz-templates/auto/auto-10.jpg and b/src/assets/quiz-templates/auto/auto-10.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-2.jpg b/src/assets/quiz-templates/auto/auto-2.jpg
index 3bd51d36..29d215d9 100644
Binary files a/src/assets/quiz-templates/auto/auto-2.jpg and b/src/assets/quiz-templates/auto/auto-2.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-3.jpg b/src/assets/quiz-templates/auto/auto-3.jpg
index 320f7d0b..2ab523bb 100644
Binary files a/src/assets/quiz-templates/auto/auto-3.jpg and b/src/assets/quiz-templates/auto/auto-3.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-4.jpg b/src/assets/quiz-templates/auto/auto-4.jpg
index 1a3c4983..66801847 100644
Binary files a/src/assets/quiz-templates/auto/auto-4.jpg and b/src/assets/quiz-templates/auto/auto-4.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-5.jpg b/src/assets/quiz-templates/auto/auto-5.jpg
index e0a5b948..7fe5f796 100644
Binary files a/src/assets/quiz-templates/auto/auto-5.jpg and b/src/assets/quiz-templates/auto/auto-5.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-6.jpg b/src/assets/quiz-templates/auto/auto-6.jpg
index 94d71b30..3f340b7d 100644
Binary files a/src/assets/quiz-templates/auto/auto-6.jpg and b/src/assets/quiz-templates/auto/auto-6.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-7.jpg b/src/assets/quiz-templates/auto/auto-7.jpg
index 286e7a61..130caa08 100644
Binary files a/src/assets/quiz-templates/auto/auto-7.jpg and b/src/assets/quiz-templates/auto/auto-7.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-8.jpg b/src/assets/quiz-templates/auto/auto-8.jpg
index b1887c9f..4d84c6a5 100644
Binary files a/src/assets/quiz-templates/auto/auto-8.jpg and b/src/assets/quiz-templates/auto/auto-8.jpg differ
diff --git a/src/assets/quiz-templates/auto/auto-9.jpg b/src/assets/quiz-templates/auto/auto-9.jpg
index 4521fcc4..710f0204 100644
Binary files a/src/assets/quiz-templates/auto/auto-9.jpg and b/src/assets/quiz-templates/auto/auto-9.jpg differ
diff --git a/src/assets/quiz-templates/education/education-1.jpg b/src/assets/quiz-templates/education/education-1.jpg
index a4eddf4d..199b10a1 100644
Binary files a/src/assets/quiz-templates/education/education-1.jpg and b/src/assets/quiz-templates/education/education-1.jpg differ
diff --git a/src/assets/quiz-templates/education/education-10.jpg b/src/assets/quiz-templates/education/education-10.jpg
index 708c3f03..2b9b02a4 100644
Binary files a/src/assets/quiz-templates/education/education-10.jpg and b/src/assets/quiz-templates/education/education-10.jpg differ
diff --git a/src/assets/quiz-templates/education/education-2.jpg b/src/assets/quiz-templates/education/education-2.jpg
index 9de16bf0..e3be450a 100644
Binary files a/src/assets/quiz-templates/education/education-2.jpg and b/src/assets/quiz-templates/education/education-2.jpg differ
diff --git a/src/assets/quiz-templates/education/education-3.jpg b/src/assets/quiz-templates/education/education-3.jpg
index 30ffb39f..d79b0ba1 100644
Binary files a/src/assets/quiz-templates/education/education-3.jpg and b/src/assets/quiz-templates/education/education-3.jpg differ
diff --git a/src/assets/quiz-templates/education/education-4.jpg b/src/assets/quiz-templates/education/education-4.jpg
index fc47aa35..91250da4 100644
Binary files a/src/assets/quiz-templates/education/education-4.jpg and b/src/assets/quiz-templates/education/education-4.jpg differ
diff --git a/src/assets/quiz-templates/education/education-5.jpg b/src/assets/quiz-templates/education/education-5.jpg
index 5b9dbbb1..3aef1891 100644
Binary files a/src/assets/quiz-templates/education/education-5.jpg and b/src/assets/quiz-templates/education/education-5.jpg differ
diff --git a/src/assets/quiz-templates/education/education-6.jpg b/src/assets/quiz-templates/education/education-6.jpg
index 2848f557..b5b0c4e7 100644
Binary files a/src/assets/quiz-templates/education/education-6.jpg and b/src/assets/quiz-templates/education/education-6.jpg differ
diff --git a/src/assets/quiz-templates/education/education-7.jpg b/src/assets/quiz-templates/education/education-7.jpg
index 7a291aab..c599f35d 100644
Binary files a/src/assets/quiz-templates/education/education-7.jpg and b/src/assets/quiz-templates/education/education-7.jpg differ
diff --git a/src/assets/quiz-templates/education/education-8.jpg b/src/assets/quiz-templates/education/education-8.jpg
index 562122fc..68c831d6 100644
Binary files a/src/assets/quiz-templates/education/education-8.jpg and b/src/assets/quiz-templates/education/education-8.jpg differ
diff --git a/src/assets/quiz-templates/education/education-9.jpg b/src/assets/quiz-templates/education/education-9.jpg
index 33852229..32c698e7 100644
Binary files a/src/assets/quiz-templates/education/education-9.jpg and b/src/assets/quiz-templates/education/education-9.jpg differ
diff --git a/src/assets/quiz-templates/health/health-1.jpg b/src/assets/quiz-templates/health/health-1.jpg
index 8e3c5adb..126974c7 100644
Binary files a/src/assets/quiz-templates/health/health-1.jpg and b/src/assets/quiz-templates/health/health-1.jpg differ
diff --git a/src/assets/quiz-templates/health/health-10.jpg b/src/assets/quiz-templates/health/health-10.jpg
index ff8f4b4e..ffe1c454 100644
Binary files a/src/assets/quiz-templates/health/health-10.jpg and b/src/assets/quiz-templates/health/health-10.jpg differ
diff --git a/src/assets/quiz-templates/health/health-11.jpg b/src/assets/quiz-templates/health/health-11.jpg
index 32ec9c3e..12ca78f6 100644
Binary files a/src/assets/quiz-templates/health/health-11.jpg and b/src/assets/quiz-templates/health/health-11.jpg differ
diff --git a/src/assets/quiz-templates/health/health-12.jpg b/src/assets/quiz-templates/health/health-12.jpg
index 3107437f..740c993a 100644
Binary files a/src/assets/quiz-templates/health/health-12.jpg and b/src/assets/quiz-templates/health/health-12.jpg differ
diff --git a/src/assets/quiz-templates/health/health-13.jpg b/src/assets/quiz-templates/health/health-13.jpg
index ed2be7fb..d2269c3b 100644
Binary files a/src/assets/quiz-templates/health/health-13.jpg and b/src/assets/quiz-templates/health/health-13.jpg differ
diff --git a/src/assets/quiz-templates/health/health-14.jpg b/src/assets/quiz-templates/health/health-14.jpg
index 5298f25c..7a7a5f16 100644
Binary files a/src/assets/quiz-templates/health/health-14.jpg and b/src/assets/quiz-templates/health/health-14.jpg differ
diff --git a/src/assets/quiz-templates/health/health-15.jpg b/src/assets/quiz-templates/health/health-15.jpg
index d2ca84c6..5f99c2f0 100644
Binary files a/src/assets/quiz-templates/health/health-15.jpg and b/src/assets/quiz-templates/health/health-15.jpg differ
diff --git a/src/assets/quiz-templates/health/health-16.jpg b/src/assets/quiz-templates/health/health-16.jpg
index 7f8163c6..46604ce2 100644
Binary files a/src/assets/quiz-templates/health/health-16.jpg and b/src/assets/quiz-templates/health/health-16.jpg differ
diff --git a/src/assets/quiz-templates/health/health-17.jpg b/src/assets/quiz-templates/health/health-17.jpg
index a9621787..3bceb2e4 100644
Binary files a/src/assets/quiz-templates/health/health-17.jpg and b/src/assets/quiz-templates/health/health-17.jpg differ
diff --git a/src/assets/quiz-templates/health/health-18.jpg b/src/assets/quiz-templates/health/health-18.jpg
index 4225df96..92585809 100644
Binary files a/src/assets/quiz-templates/health/health-18.jpg and b/src/assets/quiz-templates/health/health-18.jpg differ
diff --git a/src/assets/quiz-templates/health/health-19.jpg b/src/assets/quiz-templates/health/health-19.jpg
index e2707907..cb8ae48e 100644
Binary files a/src/assets/quiz-templates/health/health-19.jpg and b/src/assets/quiz-templates/health/health-19.jpg differ
diff --git a/src/assets/quiz-templates/health/health-2.jpg b/src/assets/quiz-templates/health/health-2.jpg
index 1ee282a7..77b4268f 100644
Binary files a/src/assets/quiz-templates/health/health-2.jpg and b/src/assets/quiz-templates/health/health-2.jpg differ
diff --git a/src/assets/quiz-templates/health/health-20.jpg b/src/assets/quiz-templates/health/health-20.jpg
index c99d10cd..ed728e87 100644
Binary files a/src/assets/quiz-templates/health/health-20.jpg and b/src/assets/quiz-templates/health/health-20.jpg differ
diff --git a/src/assets/quiz-templates/health/health-3.jpg b/src/assets/quiz-templates/health/health-3.jpg
index 22c0ec91..ffea8aab 100644
Binary files a/src/assets/quiz-templates/health/health-3.jpg and b/src/assets/quiz-templates/health/health-3.jpg differ
diff --git a/src/assets/quiz-templates/health/health-4.jpg b/src/assets/quiz-templates/health/health-4.jpg
index 204d518f..be64980c 100644
Binary files a/src/assets/quiz-templates/health/health-4.jpg and b/src/assets/quiz-templates/health/health-4.jpg differ
diff --git a/src/assets/quiz-templates/health/health-5.jpg b/src/assets/quiz-templates/health/health-5.jpg
index 6fe60567..d30be18c 100644
Binary files a/src/assets/quiz-templates/health/health-5.jpg and b/src/assets/quiz-templates/health/health-5.jpg differ
diff --git a/src/assets/quiz-templates/health/health-6.jpg b/src/assets/quiz-templates/health/health-6.jpg
index 6b742ba6..42f2bdfa 100644
Binary files a/src/assets/quiz-templates/health/health-6.jpg and b/src/assets/quiz-templates/health/health-6.jpg differ
diff --git a/src/assets/quiz-templates/health/health-7.jpg b/src/assets/quiz-templates/health/health-7.jpg
index 25a40b9a..6a3bd7cb 100644
Binary files a/src/assets/quiz-templates/health/health-7.jpg and b/src/assets/quiz-templates/health/health-7.jpg differ
diff --git a/src/assets/quiz-templates/health/health-8.jpg b/src/assets/quiz-templates/health/health-8.jpg
index f777831f..c6e15882 100644
Binary files a/src/assets/quiz-templates/health/health-8.jpg and b/src/assets/quiz-templates/health/health-8.jpg differ
diff --git a/src/assets/quiz-templates/health/health-9.jpg b/src/assets/quiz-templates/health/health-9.jpg
index fdb1d6b0..20f6feaf 100644
Binary files a/src/assets/quiz-templates/health/health-9.jpg and b/src/assets/quiz-templates/health/health-9.jpg differ
diff --git a/src/assets/quiz-templates/production/production-1.jpg b/src/assets/quiz-templates/production/production-1.jpg
index 552e5424..ccd60634 100644
Binary files a/src/assets/quiz-templates/production/production-1.jpg and b/src/assets/quiz-templates/production/production-1.jpg differ
diff --git a/src/assets/quiz-templates/production/production-10.jpg b/src/assets/quiz-templates/production/production-10.jpg
index da3b0e6d..27b3c012 100644
Binary files a/src/assets/quiz-templates/production/production-10.jpg and b/src/assets/quiz-templates/production/production-10.jpg differ
diff --git a/src/assets/quiz-templates/production/production-2.jpg b/src/assets/quiz-templates/production/production-2.jpg
index ff72fd2d..9c2bac45 100644
Binary files a/src/assets/quiz-templates/production/production-2.jpg and b/src/assets/quiz-templates/production/production-2.jpg differ
diff --git a/src/assets/quiz-templates/production/production-3.jpg b/src/assets/quiz-templates/production/production-3.jpg
index 48861a81..c18fd143 100644
Binary files a/src/assets/quiz-templates/production/production-3.jpg and b/src/assets/quiz-templates/production/production-3.jpg differ
diff --git a/src/assets/quiz-templates/production/production-4.jpg b/src/assets/quiz-templates/production/production-4.jpg
index 7bc8fb01..2beabe11 100644
Binary files a/src/assets/quiz-templates/production/production-4.jpg and b/src/assets/quiz-templates/production/production-4.jpg differ
diff --git a/src/assets/quiz-templates/production/production-5.jpg b/src/assets/quiz-templates/production/production-5.jpg
index 587d05a3..b3e8b4ab 100644
Binary files a/src/assets/quiz-templates/production/production-5.jpg and b/src/assets/quiz-templates/production/production-5.jpg differ
diff --git a/src/assets/quiz-templates/production/production-6.jpg b/src/assets/quiz-templates/production/production-6.jpg
index e0316fdb..6cc3c1f2 100644
Binary files a/src/assets/quiz-templates/production/production-6.jpg and b/src/assets/quiz-templates/production/production-6.jpg differ
diff --git a/src/assets/quiz-templates/production/production-7.jpg b/src/assets/quiz-templates/production/production-7.jpg
index 4381c548..2be25935 100644
Binary files a/src/assets/quiz-templates/production/production-7.jpg and b/src/assets/quiz-templates/production/production-7.jpg differ
diff --git a/src/assets/quiz-templates/production/production-8.jpg b/src/assets/quiz-templates/production/production-8.jpg
index fd9095f6..ee448645 100644
Binary files a/src/assets/quiz-templates/production/production-8.jpg and b/src/assets/quiz-templates/production/production-8.jpg differ
diff --git a/src/assets/quiz-templates/production/production-9.jpg b/src/assets/quiz-templates/production/production-9.jpg
index 9c7599f3..79d11bc4 100644
Binary files a/src/assets/quiz-templates/production/production-9.jpg and b/src/assets/quiz-templates/production/production-9.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-1.jpg b/src/assets/quiz-templates/real-estate/real-estate-1.jpg
index bb2bee4a..61221e50 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-1.jpg and b/src/assets/quiz-templates/real-estate/real-estate-1.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-10.jpg b/src/assets/quiz-templates/real-estate/real-estate-10.jpg
index d3056e71..ae9142b3 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-10.jpg and b/src/assets/quiz-templates/real-estate/real-estate-10.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-2.jpg b/src/assets/quiz-templates/real-estate/real-estate-2.jpg
index 2e888341..3cef868c 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-2.jpg and b/src/assets/quiz-templates/real-estate/real-estate-2.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-3.jpg b/src/assets/quiz-templates/real-estate/real-estate-3.jpg
index 4138b906..dff6b582 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-3.jpg and b/src/assets/quiz-templates/real-estate/real-estate-3.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-4.jpg b/src/assets/quiz-templates/real-estate/real-estate-4.jpg
index a127edae..1c82b32d 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-4.jpg and b/src/assets/quiz-templates/real-estate/real-estate-4.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-5.jpg b/src/assets/quiz-templates/real-estate/real-estate-5.jpg
index cc166feb..a10cd50b 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-5.jpg and b/src/assets/quiz-templates/real-estate/real-estate-5.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-6.jpg b/src/assets/quiz-templates/real-estate/real-estate-6.jpg
index 37956278..b0c611b8 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-6.jpg and b/src/assets/quiz-templates/real-estate/real-estate-6.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-7.jpg b/src/assets/quiz-templates/real-estate/real-estate-7.jpg
index 2d2b5f9b..05a86888 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-7.jpg and b/src/assets/quiz-templates/real-estate/real-estate-7.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-8.jpg b/src/assets/quiz-templates/real-estate/real-estate-8.jpg
index dc04f3a8..50bda904 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-8.jpg and b/src/assets/quiz-templates/real-estate/real-estate-8.jpg differ
diff --git a/src/assets/quiz-templates/real-estate/real-estate-9.jpg b/src/assets/quiz-templates/real-estate/real-estate-9.jpg
index 52166193..4ae92901 100644
Binary files a/src/assets/quiz-templates/real-estate/real-estate-9.jpg and b/src/assets/quiz-templates/real-estate/real-estate-9.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-1.jpg b/src/assets/quiz-templates/repair/repair-1.jpg
index 955aaa4c..98071988 100644
Binary files a/src/assets/quiz-templates/repair/repair-1.jpg and b/src/assets/quiz-templates/repair/repair-1.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-10.jpg b/src/assets/quiz-templates/repair/repair-10.jpg
index d5fb0a01..97bf0857 100644
Binary files a/src/assets/quiz-templates/repair/repair-10.jpg and b/src/assets/quiz-templates/repair/repair-10.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-2.jpg b/src/assets/quiz-templates/repair/repair-2.jpg
index 2dcc183c..eb0ca58b 100644
Binary files a/src/assets/quiz-templates/repair/repair-2.jpg and b/src/assets/quiz-templates/repair/repair-2.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-3.jpg b/src/assets/quiz-templates/repair/repair-3.jpg
index 4d458251..1111144f 100644
Binary files a/src/assets/quiz-templates/repair/repair-3.jpg and b/src/assets/quiz-templates/repair/repair-3.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-4.jpg b/src/assets/quiz-templates/repair/repair-4.jpg
index 1559a542..76183493 100644
Binary files a/src/assets/quiz-templates/repair/repair-4.jpg and b/src/assets/quiz-templates/repair/repair-4.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-5.jpg b/src/assets/quiz-templates/repair/repair-5.jpg
index 5a27a6c4..fe5cae0b 100644
Binary files a/src/assets/quiz-templates/repair/repair-5.jpg and b/src/assets/quiz-templates/repair/repair-5.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-6.jpg b/src/assets/quiz-templates/repair/repair-6.jpg
index 5e44c5b9..b29d1f63 100644
Binary files a/src/assets/quiz-templates/repair/repair-6.jpg and b/src/assets/quiz-templates/repair/repair-6.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-7.jpg b/src/assets/quiz-templates/repair/repair-7.jpg
index f58f34c0..6ac6daba 100644
Binary files a/src/assets/quiz-templates/repair/repair-7.jpg and b/src/assets/quiz-templates/repair/repair-7.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-8.jpg b/src/assets/quiz-templates/repair/repair-8.jpg
index 7a07141e..27702cd8 100644
Binary files a/src/assets/quiz-templates/repair/repair-8.jpg and b/src/assets/quiz-templates/repair/repair-8.jpg differ
diff --git a/src/assets/quiz-templates/repair/repair-9.jpg b/src/assets/quiz-templates/repair/repair-9.jpg
index a0a44e86..86c0ddc2 100644
Binary files a/src/assets/quiz-templates/repair/repair-9.jpg and b/src/assets/quiz-templates/repair/repair-9.jpg differ
diff --git a/src/assets/quiz-templates/research/research-1.jpg b/src/assets/quiz-templates/research/research-1.jpg
index c2880274..769fc845 100644
Binary files a/src/assets/quiz-templates/research/research-1.jpg and b/src/assets/quiz-templates/research/research-1.jpg differ
diff --git a/src/assets/quiz-templates/research/research-10.jpg b/src/assets/quiz-templates/research/research-10.jpg
index 302be762..ae96f110 100644
Binary files a/src/assets/quiz-templates/research/research-10.jpg and b/src/assets/quiz-templates/research/research-10.jpg differ
diff --git a/src/assets/quiz-templates/research/research-2.jpg b/src/assets/quiz-templates/research/research-2.jpg
index db853cd9..ef08ff45 100644
Binary files a/src/assets/quiz-templates/research/research-2.jpg and b/src/assets/quiz-templates/research/research-2.jpg differ
diff --git a/src/assets/quiz-templates/research/research-3.jpg b/src/assets/quiz-templates/research/research-3.jpg
index a9a7cf02..90268cfb 100644
Binary files a/src/assets/quiz-templates/research/research-3.jpg and b/src/assets/quiz-templates/research/research-3.jpg differ
diff --git a/src/assets/quiz-templates/research/research-4.jpg b/src/assets/quiz-templates/research/research-4.jpg
index a2060d11..950f348b 100644
Binary files a/src/assets/quiz-templates/research/research-4.jpg and b/src/assets/quiz-templates/research/research-4.jpg differ
diff --git a/src/assets/quiz-templates/research/research-5.jpg b/src/assets/quiz-templates/research/research-5.jpg
index 84cb8e6c..5c3a6fbf 100644
Binary files a/src/assets/quiz-templates/research/research-5.jpg and b/src/assets/quiz-templates/research/research-5.jpg differ
diff --git a/src/assets/quiz-templates/research/research-6.jpg b/src/assets/quiz-templates/research/research-6.jpg
index 3a3c4894..7d7a07c7 100644
Binary files a/src/assets/quiz-templates/research/research-6.jpg and b/src/assets/quiz-templates/research/research-6.jpg differ
diff --git a/src/assets/quiz-templates/research/research-7.jpg b/src/assets/quiz-templates/research/research-7.jpg
index 02ec0b83..b7cb3ac8 100644
Binary files a/src/assets/quiz-templates/research/research-7.jpg and b/src/assets/quiz-templates/research/research-7.jpg differ
diff --git a/src/assets/quiz-templates/research/research-8.jpg b/src/assets/quiz-templates/research/research-8.jpg
index 06cf702c..5146c5d6 100644
Binary files a/src/assets/quiz-templates/research/research-8.jpg and b/src/assets/quiz-templates/research/research-8.jpg differ
diff --git a/src/assets/quiz-templates/research/research-9.jpg b/src/assets/quiz-templates/research/research-9.jpg
index 884cb602..fbab01b3 100644
Binary files a/src/assets/quiz-templates/research/research-9.jpg and b/src/assets/quiz-templates/research/research-9.jpg differ
diff --git a/src/assets/quiz-templates/services/service-1.jpg b/src/assets/quiz-templates/services/service-1.jpg
index 51a36fb4..50aa3dcf 100644
Binary files a/src/assets/quiz-templates/services/service-1.jpg and b/src/assets/quiz-templates/services/service-1.jpg differ
diff --git a/src/assets/quiz-templates/services/service-10.jpg b/src/assets/quiz-templates/services/service-10.jpg
index a2303dff..095d4741 100644
Binary files a/src/assets/quiz-templates/services/service-10.jpg and b/src/assets/quiz-templates/services/service-10.jpg differ
diff --git a/src/assets/quiz-templates/services/service-11.jpg b/src/assets/quiz-templates/services/service-11.jpg
index 15111b28..f0c10880 100644
Binary files a/src/assets/quiz-templates/services/service-11.jpg and b/src/assets/quiz-templates/services/service-11.jpg differ
diff --git a/src/assets/quiz-templates/services/service-2.jpg b/src/assets/quiz-templates/services/service-2.jpg
index 08140977..25d92401 100644
Binary files a/src/assets/quiz-templates/services/service-2.jpg and b/src/assets/quiz-templates/services/service-2.jpg differ
diff --git a/src/assets/quiz-templates/services/service-3.jpg b/src/assets/quiz-templates/services/service-3.jpg
index 96b87209..166c1d05 100644
Binary files a/src/assets/quiz-templates/services/service-3.jpg and b/src/assets/quiz-templates/services/service-3.jpg differ
diff --git a/src/assets/quiz-templates/services/service-4.jpg b/src/assets/quiz-templates/services/service-4.jpg
index a04654e3..04eb2fed 100644
Binary files a/src/assets/quiz-templates/services/service-4.jpg and b/src/assets/quiz-templates/services/service-4.jpg differ
diff --git a/src/assets/quiz-templates/services/service-5.jpg b/src/assets/quiz-templates/services/service-5.jpg
index 8879f78e..e48e3458 100644
Binary files a/src/assets/quiz-templates/services/service-5.jpg and b/src/assets/quiz-templates/services/service-5.jpg differ
diff --git a/src/assets/quiz-templates/services/service-6.jpg b/src/assets/quiz-templates/services/service-6.jpg
index aabcbbe4..80e30429 100644
Binary files a/src/assets/quiz-templates/services/service-6.jpg and b/src/assets/quiz-templates/services/service-6.jpg differ
diff --git a/src/assets/quiz-templates/services/service-7.jpg b/src/assets/quiz-templates/services/service-7.jpg
index 2abf2b63..30da9153 100644
Binary files a/src/assets/quiz-templates/services/service-7.jpg and b/src/assets/quiz-templates/services/service-7.jpg differ
diff --git a/src/assets/quiz-templates/services/service-8.jpg b/src/assets/quiz-templates/services/service-8.jpg
index 20d3bb74..0418c1f9 100644
Binary files a/src/assets/quiz-templates/services/service-8.jpg and b/src/assets/quiz-templates/services/service-8.jpg differ
diff --git a/src/assets/quiz-templates/services/service-9.jpg b/src/assets/quiz-templates/services/service-9.jpg
index 26556403..10a48e27 100644
Binary files a/src/assets/quiz-templates/services/service-9.jpg and b/src/assets/quiz-templates/services/service-9.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-1.jpg b/src/assets/quiz-templates/tourism/tourism-1.jpg
index f4c788be..97f029c5 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-1.jpg and b/src/assets/quiz-templates/tourism/tourism-1.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-10.jpg b/src/assets/quiz-templates/tourism/tourism-10.jpg
index c11ab435..b3738812 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-10.jpg and b/src/assets/quiz-templates/tourism/tourism-10.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-2.jpg b/src/assets/quiz-templates/tourism/tourism-2.jpg
index c6628bc7..00c9c0b2 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-2.jpg and b/src/assets/quiz-templates/tourism/tourism-2.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-3.jpg b/src/assets/quiz-templates/tourism/tourism-3.jpg
index 895d366c..ba7d6220 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-3.jpg and b/src/assets/quiz-templates/tourism/tourism-3.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-4.jpg b/src/assets/quiz-templates/tourism/tourism-4.jpg
index 863b593f..3f06b324 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-4.jpg and b/src/assets/quiz-templates/tourism/tourism-4.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-5.jpg b/src/assets/quiz-templates/tourism/tourism-5.jpg
index 86913e09..3b884cb8 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-5.jpg and b/src/assets/quiz-templates/tourism/tourism-5.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-6.jpg b/src/assets/quiz-templates/tourism/tourism-6.jpg
index 40912313..ef0a98fb 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-6.jpg and b/src/assets/quiz-templates/tourism/tourism-6.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-7.jpg b/src/assets/quiz-templates/tourism/tourism-7.jpg
index 25efa443..e0e36094 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-7.jpg and b/src/assets/quiz-templates/tourism/tourism-7.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-8.jpg b/src/assets/quiz-templates/tourism/tourism-8.jpg
index a76a4437..92414710 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-8.jpg and b/src/assets/quiz-templates/tourism/tourism-8.jpg differ
diff --git a/src/assets/quiz-templates/tourism/tourism-9.jpg b/src/assets/quiz-templates/tourism/tourism-9.jpg
index 7db92d83..a7914ff8 100644
Binary files a/src/assets/quiz-templates/tourism/tourism-9.jpg and b/src/assets/quiz-templates/tourism/tourism-9.jpg differ
diff --git a/src/index.tsx b/src/index.tsx
index 3e3fe6e1..86b5737e 100755
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -17,6 +17,8 @@ import CloseIcon from "@icons/CloseBold";
import type { SnackbarKey } from "notistack";
import { CheckFastlink } from "@ui_kit/CheckFastlink";
+import { ErrorBoundary } from "react-error-boundary";
+import { handleComponentError } from "./utils/handleComponentError";
moment.locale("ru");
polyfillCountryFlagEmojis();
@@ -36,6 +38,8 @@ const snackbarAction = (snackbarId: SnackbarKey) => (
);
+const ApologyPage = () =>
+
const root = createRoot(document.getElementById("root")!);
root.render(
@@ -60,7 +64,13 @@ root.render(
style={{ backgroundColor: lightTheme.palette.brightPurple.main }}
>
-
+
+
+
+
diff --git a/src/pages/ContactFormPage/NewField/NewFieldParent.tsx b/src/pages/ContactFormPage/NewField/NewFieldParent.tsx
index d44da31b..b28127cf 100644
--- a/src/pages/ContactFormPage/NewField/NewFieldParent.tsx
+++ b/src/pages/ContactFormPage/NewField/NewFieldParent.tsx
@@ -60,7 +60,7 @@ export default function NewFieldParent({
value={quiz.config.formContact.fields[defaultValue].text}
placeholder={placeholderHelp}
text={""}
- maxLength={20}
+ maxLength={150}
/>
@@ -75,7 +75,7 @@ export default function NewFieldParent({
value={quiz.config.formContact.fields[defaultValue].innerText}
placeholder={placeholderField}
text={""}
- maxLength={20}
+ maxLength={150}
/>
>
diff --git a/src/pages/IntegrationsPage/IntegrationsModal/Amo/useAmoIntegration.ts b/src/pages/IntegrationsPage/IntegrationsModal/Amo/useAmoIntegration.ts
index 6afafbd2..e420f921 100644
--- a/src/pages/IntegrationsPage/IntegrationsModal/Amo/useAmoIntegration.ts
+++ b/src/pages/IntegrationsPage/IntegrationsModal/Amo/useAmoIntegration.ts
@@ -128,10 +128,6 @@ export const useAmoIntegration = ({ isModalOpen, isTryRemoveAccount, quizID, que
})
}
- console.log("got questions")
- console.log(gottenQuestions)
- console.log("settingsResponse")
- console.log(settingsResponse.FieldsRule)
if (key === "Contact") {
const MAP = settingsResponse.FieldsRule[key as QuestionKeys].ContactRuleMap
diff --git a/src/pages/Questions/Emoji/Emoji.tsx b/src/pages/Questions/Emoji/Emoji.tsx
index 81bc34f0..e7c0df86 100644
--- a/src/pages/Questions/Emoji/Emoji.tsx
+++ b/src/pages/Questions/Emoji/Emoji.tsx
@@ -9,6 +9,7 @@ import { AnswerDraggableList } from "../AnswerDraggableList";
import ButtonsOptions from "../QuestionOptions/ButtonsLayout/ButtonsOptions";
import EmojiAnswerItem from "./EmojiAnswerItem/EmojiAnswerItem";
import SwitchEmoji from "./switchEmoji";
+import Emoji3 from '@emoji-mart/react';
interface Props {
question: QuizQuestionEmoji;
@@ -132,6 +133,11 @@ export default function Emoji({ question, openBranchingPage, setOpenBranchingPag
switchState={switchState}
question={question}
/>
+
+
+
>
);
}
diff --git a/src/pages/Questions/QuestionOptions/SliderOptions/SliderOptions.tsx b/src/pages/Questions/QuestionOptions/SliderOptions/SliderOptions.tsx
index 63c10e19..3535cfbb 100644
--- a/src/pages/Questions/QuestionOptions/SliderOptions/SliderOptions.tsx
+++ b/src/pages/Questions/QuestionOptions/SliderOptions/SliderOptions.tsx
@@ -16,6 +16,9 @@ interface Props {
openBranchingPage: boolean;
setOpenBranchingPage: (a: boolean) => void;
}
+function ReplaceToNotStartZero (x: number) {
+ return(Number(x.toString().replace(/^0+/, '') || '0'))
+}
export default function SliderOptions({ question, openBranchingPage, setOpenBranchingPage }: Props) {
const theme = useTheme();
@@ -29,7 +32,7 @@ export default function SliderOptions({ question, openBranchingPage, setOpenBran
setStartError("");
updateQuestion(question.id, (question) => {
- question.content.start = value;
+ question.content.start = ReplaceToNotStartZero(value);
});
}, 5000);
@@ -37,9 +40,19 @@ export default function SliderOptions({ question, openBranchingPage, setOpenBran
setStepError("");
updateQuestion(question.id, (question) => {
- question.content.step = value;
+ question.content.step = ReplaceToNotStartZero(value);
});
}, 5000);
+ const updateStepsDebounced = useDebouncedCallback((value: string) => {
+ console.log("value")
+ console.log(value)
+ console.log(value.toString())
+ console.log("ReplaceToNotStartZero(Number(value)) _____________________________________")
+ console.log(ReplaceToNotStartZero(Number(value)))
+ updateQuestion(question.id, (question) => {
+ question.content.step = ReplaceToNotStartZero(Number(value));
+ });
+ }, 5000);
const calculateValues = () => {
const { step, start } = question.content;
@@ -117,8 +130,9 @@ export default function SliderOptions({ question, openBranchingPage, setOpenBran
value={question.content.range.split("—")[0]}
onChange={({ target }) => {
updateQuestion(question.id, (question) => {
- question.content.range = `${target.value}—${question.content.range.split("—")[1]}`;
+ question.content.range = `${Number(target.value)}—${question.content.range.split("—")[1]}`;
});
+ // if (/^0\d+$/.test(target.value.toString())) updateStepsDebounced(target.value);
}}
onBlur={calculateValues}
/>
@@ -131,8 +145,9 @@ export default function SliderOptions({ question, openBranchingPage, setOpenBran
value={question.content.range.split("—")[1]}
onChange={({ target }) => {
updateQuestion(question.id, (question) => {
- question.content.range = `${question.content.range.split("—")[0]}—${target.value}`;
+ question.content.range = `${question.content.range.split("—")[0]}—${Number(target.value)}`;
});
+ // if (/^0\d+$/.test(target.value.toString())) updateStepsDebounced(target.value);
}}
onBlur={calculateValues}
/>
diff --git a/src/pages/Questions/UploadVideoModal.tsx b/src/pages/Questions/UploadVideoModal.tsx
index a992dda1..a032d245 100644
--- a/src/pages/Questions/UploadVideoModal.tsx
+++ b/src/pages/Questions/UploadVideoModal.tsx
@@ -94,6 +94,7 @@ export default function UploadVideoModal({ open, onClose, video, onUpload }: Hel
onChange={({ target }) => {
if (target.files?.length) {
onUpload(URL.createObjectURL(target.files[0] || " "));
+ onClose()
}
}}
hidden
diff --git a/src/pages/ResultPage/cards/EmailSettingsCard.tsx b/src/pages/ResultPage/cards/EmailSettingsCard.tsx
index 0d74c171..1768ed58 100644
--- a/src/pages/ResultPage/cards/EmailSettingsCard.tsx
+++ b/src/pages/ResultPage/cards/EmailSettingsCard.tsx
@@ -118,7 +118,7 @@ export const EmailSettingsCard = ({ quizExpand }: Props) => {
{
updateQuiz(quiz.id, (quiz) => {
quiz.config.resultInfo.theme = target.value;
diff --git a/src/pages/Tariffs/Tariffs.tsx b/src/pages/Tariffs/Tariffs.tsx
index 24f1bc0e..49b63c1e 100644
--- a/src/pages/Tariffs/Tariffs.tsx
+++ b/src/pages/Tariffs/Tariffs.tsx
@@ -74,7 +74,7 @@ function TariffPage() {
const tariffsList: Tariff[] = [];
let page = 2
const [tariffsResponse, tariffsResponseError] = await getTariffs(page - 1);
-
+console.log(tariffsResponse)
if (tariffsResponseError || !tariffsResponse) {
return tariffsList;
}
@@ -182,7 +182,7 @@ function TariffPage() {
inCart();
};
- const filteredTariffs = tariffs.filter((tariff) => {
+ const filteredTariffs = tariffs.filter((tariff, i) => {
return (
tariff.privileges[0].serviceKey === "squiz" &&
!tariff.isDeleted &&
diff --git a/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx b/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx
index 704dd138..7aad4952 100644
--- a/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx
+++ b/src/pages/Tariffs/tariffsUtils/createTariffElements.tsx
@@ -17,6 +17,8 @@ export const createTariffElements = (
cc?: boolean,
icon?: ReactNode
) => {
+ console.log("start work createTariffElements")
+ console.log("filteredTariffs ", filteredTariffs)
const tariffElements = filteredTariffs
.filter((tariff) => tariff.privileges.length > 0)
.map((tariff, index) => {
diff --git a/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx b/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx
index b1ce6f8e..88b0fb82 100644
--- a/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx
+++ b/src/pages/createQuize/QuizGallery/QuizTemplateCard.tsx
@@ -52,6 +52,7 @@ export const QuizTemplateCard = ({
}}
>
{
const user = useUserStore((state) => state.user?._id);
- const ticket = useTicketStore(
- (state) => state[user ? "authData" : "unauthData"],
- );
+ const ticket = useTicketStore(state => state[user ? "authData" : "unauthData"]);
+ //Запись SEE в учётник
const { isActiveSSETab, updateSSEValue } = useSSETab(
"ticket",
addOrUpdateUnauthMessages,
@@ -192,40 +192,13 @@ export default () => {
const sendMessage = async (messageField: string) => {
if (!messageField || ticket.isMessageSending) return false;
+
setSseEnabled(true);
- let successful = false;
setIsMessageSending(true);
- if (!ticket.sessionData?.ticketId) {
- const [data, createError] = await createTicket(
- messageField,
- Boolean(user),
- );
- if (createError || !data) {
- successful = false;
-
- enqueueSnackbar(createError);
- } else {
- successful = true;
-
- setTicketData({ ticketId: data.Ticket, sessionId: data.sess });
- }
-
- setIsMessageSending(false);
- } else {
- const [_, sendTicketMessageError] = await sendTicketMessage(
- ticket.sessionData?.ticketId,
- messageField,
- );
- successful = true;
-
- if (sendTicketMessageError) {
- successful = false;
- enqueueSnackbar(sendTicketMessageError);
- }
- setIsMessageSending(false);
- }
+ let successful = await selectSendingMethod({messageField});
+ setIsMessageSending(false);
return successful;
};
const sendFile = async (file: File) => {
diff --git a/src/ui_kit/FloatingSupportChat/useTechnicalSupport.ts b/src/ui_kit/FloatingSupportChat/useTechnicalSupport.ts
new file mode 100644
index 00000000..21430c7e
--- /dev/null
+++ b/src/ui_kit/FloatingSupportChat/useTechnicalSupport.ts
@@ -0,0 +1,266 @@
+import { sendTicketMessage, shownMessage } from "@/api/ticket";
+import { useSSETab } from "@/utils/hooks/useSSETab";
+import { parseAxiosError } from "@/utils/parse-error";
+import { TicketMessage, createTicket, useSSESubscription, useTicketMessages, useTicketsFetcher, sendFile as sf } from "@frontend/kitui";
+
+import {
+ addOrUpdateUnauthMessages,
+ cleanAuthTicketData,
+ cleanUnauthTicketData,
+ setIsMessageSending,
+ setTicketData,
+ setUnauthIsPreventAutoscroll,
+ setUnauthTicketMessageFetchState,
+ useTicketStore,
+} from "@root/ticket";
+import { enqueueSnackbar } from "notistack";
+import { useCallback, useEffect, useMemo, useState } from "react";
+
+interface Props {
+ userId?: string;
+
+}
+
+type ModalWarningType =
+ | "errorType"
+ | "errorSize"
+ | "picture"
+ | "video"
+ | "audio"
+ | "document"
+ | null;
+const MAX_FILE_SIZE = 419430400;
+const ACCEPT_SEND_FILE_TYPES_MAP = [
+ ".jpeg",
+ ".jpg",
+ ".png",
+ ".mp4",
+ ".doc",
+ ".docx",
+ ".pdf",
+ ".txt",
+ ".xlsx",
+ ".csv",
+] as const;
+export default ({ userId }:Props) => {
+ const ticket = useTicketStore((state) => state[userId ? "authData" : "unauthData"]);
+
+ const { isActiveSSETab, updateSSEValue } = useSSETab(
+ "ticket",
+ addOrUpdateUnauthMessages,
+ );
+
+ const [modalWarningType, setModalWarningType] =
+ useState(null);
+ const [isChatOpened, setIsChatOpened] = useState(false);
+ const [sseEnabled, setSseEnabled] = useState(true);
+
+ const handleChatClickOpen = () => {
+ setIsChatOpened(true);
+ };
+ const handleChatClickClose = () => {
+ setIsChatOpened(false);
+ };
+ const handleChatClickSwitch = () => {
+ setIsChatOpened((state) => !state);
+ };
+
+ const getGreetingMessage: TicketMessage = useMemo(() => {
+ const workingHoursMessage =
+ "Здравствуйте, задайте ваш вопрос и наш оператор вам ответит в течение 10 минут";
+ const offHoursMessage =
+ "Здравствуйте, задайте ваш вопрос и наш оператор вам ответит в течение 10 минут";
+ const date = new Date();
+ const currentHourUTC = date.getUTCHours();
+ const MscTime = 3; // Москва UTC+3;
+ const moscowHour = (currentHourUTC + MscTime) % 24;
+ const greetingMessage =
+ moscowHour >= 3 && moscowHour < 10
+ ? offHoursMessage
+ : workingHoursMessage;
+
+ return {
+ created_at: new Date().toISOString(),
+ files: [],
+ id: "111",
+ message: greetingMessage,
+ request_screenshot: "",
+ session_id: "greetingMessage",
+ shown: { me: 1 },
+ ticket_id: "111",
+ user_id: "greetingMessage",
+ };
+ }, [isChatOpened]);
+
+ useTicketsFetcher({
+ url: `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0/getTickets`,
+ ticketsPerPage: 10,
+ ticketApiPage: 0,
+ onSuccess: (result) => {
+ if (result.data?.length) {
+ const currentTicket = result.data.find(
+ ({ origin }) => !origin.includes("/support"),
+ );
+
+ if (!currentTicket) {
+ return;
+ }
+
+ setTicketData({
+ ticketId: currentTicket.id,
+ sessionId: currentTicket.sess,
+ });
+ }
+ },
+ onError: (error: Error) => {
+ const message = parseAxiosError(error);
+ if (message) enqueueSnackbar(message);
+ },
+ onFetchStateChange: () => {},
+ enabled: Boolean(userId),
+ });
+
+ useTicketMessages({
+ url: `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0/getMessages`,
+ isUnauth: true,
+ ticketId: ticket.sessionData?.ticketId,
+ messagesPerPage: ticket.messagesPerPage,
+ messageApiPage: ticket.apiPage,
+ onSuccess: useCallback((messages) => {
+ addOrUpdateUnauthMessages(messages);
+ }, []),
+ onError: useCallback((error: Error) => {
+ if (error.name === "CanceledError") {
+ return;
+ }
+
+ const [message] = parseAxiosError(error);
+ if (message) enqueueSnackbar(message);
+ }, []),
+ onFetchStateChange: setUnauthTicketMessageFetchState,
+ });
+
+ useSSESubscription({
+ enabled:
+ sseEnabled && isActiveSSETab && Boolean(ticket.sessionData?.sessionId),
+ url: `${process.env.REACT_APP_DOMAIN}/heruvym/v1.0.0/ticket?ticket=${ticket.sessionData?.ticketId}&s=${ticket.sessionData?.sessionId}`,
+ onNewData: (ticketMessages) => {
+ const isTicketClosed = ticketMessages.some(
+ (message) => message.session_id === "close",
+ );
+ if (isTicketClosed) {
+ cleanAuthTicketData();
+ addOrUpdateUnauthMessages([getGreetingMessage]);
+ if (!userId) {
+ cleanUnauthTicketData();
+ localStorage.removeItem("unauth-ticket");
+ }
+ return;
+ }
+ updateSSEValue(ticketMessages);
+ addOrUpdateUnauthMessages(ticketMessages);
+ },
+ onDisconnect: useCallback(() => {
+ setUnauthIsPreventAutoscroll(false);
+ setSseEnabled(false);
+ }, []),
+ marker: "ticket",
+ });
+
+ useEffect(() => {
+ cleanAuthTicketData();
+ setSseEnabled(true);
+ }, [userId]);
+
+ useEffect(() => {
+ if (isChatOpened) {
+ const newMessages = ticket.messages.filter(
+ ({ shown }) => shown?.me !== 1,
+ );
+
+ newMessages.map(async ({ id }) => {
+ await shownMessage(id);
+ });
+ }
+ }, [isChatOpened, ticket.messages]);
+
+ const sendMessage = async (messageField: string) => {
+ if (!messageField || ticket.isMessageSending) return false;
+ setSseEnabled(true);
+ let successful = false;
+ setIsMessageSending(true);
+ if (!ticket.sessionData?.ticketId) {
+ const [data, createError] = await createTicket(
+ messageField,
+ Boolean(userId),
+ );
+
+ if (createError || !data) {
+ successful = false;
+
+ enqueueSnackbar(createError);
+ } else {
+ successful = true;
+
+ setTicketData({ ticketId: data.Ticket, sessionId: data.sess });
+ }
+
+ setIsMessageSending(false);
+ } else {
+ const [_, sendTicketMessageError] = await sendTicketMessage(
+ ticket.sessionData?.ticketId,
+ messageField,
+ );
+ successful = true;
+
+ if (sendTicketMessageError) {
+ successful = false;
+ enqueueSnackbar(sendTicketMessageError);
+ }
+ setIsMessageSending(false);
+ }
+
+ return successful;
+ };
+ const sendFile = async (file: File) => {
+ if (file === undefined) return true;
+
+ let ticketId = ticket.sessionData?.ticketId;
+ if (!ticket.sessionData?.ticketId) {
+ const [data, createError] = await createTicket("", Boolean(userId));
+ ticketId = data?.Ticket;
+
+ if (createError || !data) {
+ enqueueSnackbar(createError);
+ } else {
+ setTicketData({ ticketId: data.Ticket, sessionId: data.sess });
+ }
+
+ setIsMessageSending(false);
+ }
+
+ if (ticketId !== undefined) {
+ if (file.size > MAX_FILE_SIZE) return setModalWarningType("errorSize");
+
+ const [_, sendFileError] = await sf(ticketId, file);
+
+ if (sendFileError) {
+ enqueueSnackbar(sendFileError);
+ }
+
+ return true;
+ }
+ };
+
+ return {
+ isChatOpened,
+ handleChatClickOpen,
+ handleChatClickClose,
+ handleChatClickSwitch,
+ sendMessage,
+ sendFile,
+ modalWarningType,
+ setModalWarningType,
+ getGreetingMessage
+ };
+};
\ No newline at end of file
diff --git a/src/ui_kit/FloatingSupportChat/utils.ts b/src/ui_kit/FloatingSupportChat/utils.ts
new file mode 100644
index 00000000..e6e45f18
--- /dev/null
+++ b/src/ui_kit/FloatingSupportChat/utils.ts
@@ -0,0 +1,55 @@
+import { sendTicketMessage } from "@/api/ticket";
+import { setTicketData, useTicketStore } from "@/stores/ticket";
+import { useUserStore } from "@root/user";
+import { createTicket, sendFile as sendFileRequest } from "@api/ticket";
+import { enqueueSnackbar } from "notistack";
+
+interface SelectSendingMethod {
+ messageField: string;
+ isSnackbar?: boolean;
+ systemError?: boolean;
+
+ }
+export const selectSendingMethod = async ({messageField, isSnackbar = true, systemError = false}: SelectSendingMethod) => {
+ console.log("click")
+ const user = useUserStore.getState().user?._id;
+ const ticket = useTicketStore.getState()[user ? "authData" : "unauthData"];
+ console.log(ticket)
+
+ console.log("click 2")
+ let successful = false;
+ if (!(window.location.hostname == 'localhost' && systemError)) { //предупреждать о системных ошибках вне локалхост
+ if (!ticket.sessionData?.ticketId) {
+ console.log("autorisated 2")
+ const [data, createError] = await createTicket(
+ messageField,
+ Boolean(user),
+ systemError,
+ );
+
+ if (createError || !data) {
+ successful = false;
+
+ if (isSnackbar) enqueueSnackbar(createError);
+ } else {
+ successful = true;
+
+ setTicketData({ ticketId: data.Ticket, sessionId: data.sess });
+ }
+
+ } else {
+ const [_, sendTicketMessageError] = await sendTicketMessage(
+ ticket.sessionData?.ticketId,
+ messageField,
+ systemError,
+ );
+ successful = true;
+
+ if (sendTicketMessageError) {
+ successful = false;
+ if (isSnackbar) enqueueSnackbar(sendTicketMessageError);
+ }
+ }
+ }
+ return successful;
+}
\ No newline at end of file
diff --git a/src/ui_kit/MediaSelectionAndDisplay.tsx b/src/ui_kit/MediaSelectionAndDisplay.tsx
index 4aeeaab3..6e73289c 100644
--- a/src/ui_kit/MediaSelectionAndDisplay.tsx
+++ b/src/ui_kit/MediaSelectionAndDisplay.tsx
@@ -19,9 +19,9 @@ import UploadBox from "@ui_kit/UploadBox";
import UploadIcon from "@icons/UploadIcon";
import InfoIcon from "@icons/InfoIcon";
-import imge from "@/assets/card-1.png"
import { CropModalInit } from "./Modal/CropModal";
import { AnyTypedQuizQuestion } from "@frontend/squzanswerer";
+import UploadVideoModal from "@/pages/Questions/UploadVideoModal";
interface Iprops {
question: AnyTypedQuizQuestion;
@@ -35,11 +35,12 @@ export const MediaSelectionAndDisplay: FC = ({
question,
cropAspectRatio,
}) => {
+ const theme = useTheme();
+ const [isVideoUploadDialogOpen, setIsVideoUploadDialogOpen] = useState(false);
const [pictureUploding, setPictureUploading] = useState(false);
const [backgroundUploding, setBackgroundUploading] = useState(false);
const [openCropModal, setOpenCropModal] = useState(false);
const quizQid = useCurrentQuiz()?.qid;
- const theme = useTheme();
const [isImageUploadOpen, openImageUploadModal, closeImageUploadModal] =
useDisclosure();
async function handleImageUpload(file: File) {
@@ -84,7 +85,7 @@ export const MediaSelectionAndDisplay: FC = ({
});
}
- setBackgroundUploading(false);
+ setTimeout(() => {setBackgroundUploading(false)},7000);
}
return (
@@ -151,6 +152,17 @@ export const MediaSelectionAndDisplay: FC = ({
onClose={closeImageUploadModal}
handleImageChange={handleImageUpload}
/>
+ setIsVideoUploadDialogOpen(false)}
+ onUpload={(s:string) => {
+ handleVideoUpload(s);
+ setTimeout(() => {setBackgroundUploading(false)},5000);
+ }
+ }
+ video={question.content.video}
+ />
+
;
+
+function queueErrorRequest(error: ComponentError) {
+ errorsQueue.push(error);
+
+ clearTimeout(timeoutId);
+ timeoutId = setTimeout(() => {
+ sendErrorsToServer();
+ }, 1000);
+}
+
+async function sendErrorsToServer() {
+ // makeRequest({
+ // url: "",
+ // method: "POST",
+ // body: errorsQueue,
+ // useToken: true,
+ // });
+ selectSendingMethod({
+ messageField: `Fake-sending ${errorsQueue.length} errors to server ${JSON.stringify(errorsQueue)}`,
+ isSnackbar: false,
+ systemError: true
+ });
+// errorsQueue = [];
+}
diff --git a/yarn.lock b/yarn.lock
index cfa9c20a..5d75174a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1337,7 +1337,7 @@
debug "^3.1.0"
lodash.once "^4.1.1"
-"@emoji-mart/data@^1.1.2":
+"@emoji-mart/data@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@emoji-mart/data/-/data-1.2.1.tgz#0ad70c662e3bc603e23e7d98413bd1e64c4fcb6c"
integrity sha512-no2pQMWiBy6gpBEiqGeU77/bFejDqUTRY7KX+0+iur13op3bqUsXdnwoZs6Xb1zbv0gAj5VvS1PWoUUckSr5Dw==
@@ -1513,7 +1513,7 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5"
integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==
-"@frontend/kitui@^1.0.86":
+"@frontend/kitui@^1.0.87":
version "1.0.86"
resolved "https://penahub.gitlab.yandexcloud.net/api/v4/projects/21/packages/npm/@frontend/kitui/-/@frontend/kitui-1.0.86.tgz#03a56b99403b62810134f3d7da01ea3fc8cc4f7f"
integrity sha1-A6VrmUA7YoEBNPPX2gHqP8jMT38=