From 905ea863299597831fb4fb7a1d6f5a8e83a4197a Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Mon, 17 Jun 2024 22:17:51 +0300 Subject: [PATCH] protet admin page; gix toaster multiple show bug --- pages/cart/surveys/index.tsx | 92 ++++++++++++-------------- pages/dash.tsx | 122 ++++++++++++++++++----------------- 2 files changed, 104 insertions(+), 110 deletions(-) diff --git a/pages/cart/surveys/index.tsx b/pages/cart/surveys/index.tsx index 309b8af..f8cf1e8 100644 --- a/pages/cart/surveys/index.tsx +++ b/pages/cart/surveys/index.tsx @@ -7,66 +7,58 @@ const common = require('../../../src/helpers/common'); // import * as common from '../../../src/helpers/common'; import SurveyForm from '../../../components/survey/SurveyForm'; import _ from 'lodash'; +import ProtectedRoute from 'components/protectedRoute'; const SurveyPage = ({ serverSurveys }) => { const [selectedSurvey, setSelectedSurvey] = useState(null); return ( -
-

Анкети

+ +
+

Анкети

-
-
-

Списък

-
    - {serverSurveys.map((survey) => ( -
  • -

    {survey.id}: {survey.content}

    - {/*

    {survey.publicFrom} - {survey.publicUntil}

    */} -

    [{survey.answers}]

    -
    - {Object.entries(_.groupBy(survey.messages, message => message.answer || "Без отговор")).map(([key, items]) => ( -
    - {key}: {items.length} -
    - ))} -
    - -
  • - ))} -
- +
+
+

Списък

+
    + {serverSurveys.map((survey) => ( +
  • +

    {survey.id}: {survey.content}

    + {/*

    {survey.publicFrom} - {survey.publicUntil}

    */} +

    [{survey.answers}]

    +
    + {Object.entries(_.groupBy(survey.messages, message => message.answer || "Без отговор")).map(([key, items]) => ( +
    + {key}: {items.length} +
    + ))} +
    + +
  • + ))} +
+ +
+
+

Детайли

+ +
-
-

Детайли

- +
- {/*
-

Selected Survey

- {selectedSurvey ? ( -
-

{selectedSurvey.title}

-

{selectedSurvey.description}

-
- ) : ( -

No survey selected.

- )} -
*/}
-
-
-
+ ); }; diff --git a/pages/dash.tsx b/pages/dash.tsx index 2aeb5f7..0ff470f 100644 --- a/pages/dash.tsx +++ b/pages/dash.tsx @@ -65,11 +65,13 @@ export default function DashboardPage({ initialItems, initialUserId, cartEvents, // } // }, []);// show the message every time we load the page + useEffect(() => { - if (messages.length > 0) { + if (messages && messages.length > 0) { + console.log("user has ", messages.length, " messages."); showMessageToasts(messages); } - }, [messages]); + }, []); const showMessageToasts = (messages, handleMessageOptionAnswer) => { const handleOptionClick = async (messageId, option, toastId) => { @@ -86,8 +88,8 @@ export default function DashboardPage({ initialItems, initialUserId, cartEvents, toast.dismiss(toastId); }; - messages.forEach((message, messageIndex) => { - const toastId = `message-${messageIndex}`; + messages.forEach((message) => { + const toastId = `message-${message.id}`; const content = (
{message.content.message}
@@ -114,68 +116,68 @@ export default function DashboardPage({ initialItems, initialUserId, cartEvents, }); }; - const showMessageToastNewModal = (messages, handleMessageOptionAnswer) => { - let currentMessageIndex = 0; + // const showMessageToastNewModal = (messages, handleMessageOptionAnswer) => { + // let currentMessageIndex = 0; - const showModal = () => { - if (currentMessageIndex >= messages.length) { - return; // All messages have been shown - } + // const showModal = () => { + // if (currentMessageIndex >= messages.length) { + // return; // All messages have been shown + // } - const message = messages[currentMessageIndex]; - const content = ( -
-
-
- -
-
{message.content.message}
-
- {message.content.options?.map((option, index) => ( - - ))} -
-
-
- ); + // const message = messages[currentMessageIndex]; + // const content = ( + //
+ //
+ //
+ // + //
+ //
{message.content.message}
+ //
+ // {message.content.options?.map((option, index) => ( + // + // ))} + //
+ //
+ //
+ // ); - toast(content, { - autoClose: false, // Keep the toast open until manually closed - closeButton: false, - onClose: handleClose, - //className: 'custom-toast', // Optional custom class for additional styling - }); - }; + // toast(content, { + // autoClose: false, // Keep the toast open until manually closed + // closeButton: false, + // onClose: handleClose, + // //className: 'custom-toast', // Optional custom class for additional styling + // }); + // }; - const handleOptionClick = async (messageId, option) => { - try { - await axiosInstance.put(`/api/data/messages/${messageId}`, { answer: option }); - toast.dismiss(); - currentMessageIndex++; - showModal(); - } catch (error) { - console.error("Error updating message:", error); - toast.error("Error updating message. Please try again."); - } - }; + // const handleOptionClick = async (messageId, option) => { + // try { + // await axiosInstance.put(`/api/data/messages/${messageId}`, { answer: option }); + // toast.dismiss(); + // currentMessageIndex++; + // showModal(); + // } catch (error) { + // console.error("Error updating message:", error); + // toast.error("Error updating message. Please try again."); + // } + // }; - const handleClose = () => { - toast.dismiss(); - }; + // const handleClose = () => { + // toast.dismiss(); + // }; - showModal(); - }; + // showModal(); + // }; // FOR ADMINS ONLY const handleUserSelection = async (publisher) => {