From aca0710977646ada4f9175557e15d01fd8e5134a Mon Sep 17 00:00:00 2001 From: adrian mustea Date: Tue, 19 Mar 2024 19:30:18 +0200 Subject: [PATCH] disable button for inactive quests --- .../ViewQuestResults/PublishQuestCardBody.tsx | 19 ++++++++++++++++--- wondrous-bot-admin/src/utils/constants.tsx | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/wondrous-bot-admin/src/components/ViewQuestResults/PublishQuestCardBody.tsx b/wondrous-bot-admin/src/components/ViewQuestResults/PublishQuestCardBody.tsx index 2955c2ae9..9d900bf64 100644 --- a/wondrous-bot-admin/src/components/ViewQuestResults/PublishQuestCardBody.tsx +++ b/wondrous-bot-admin/src/components/ViewQuestResults/PublishQuestCardBody.tsx @@ -15,6 +15,7 @@ import { useDiscordRoles } from "utils/discord"; import GlobalContext from "utils/context/GlobalContext"; import ErrorField from "components/Shared/ErrorField"; import { useDiscordRoleRewardData } from "components/Rewards/utils"; +import { ERRORS_LABELS, QUEST_STATUSES } from "utils/constants"; const PublishQuestModal = ({ onClose, @@ -98,7 +99,7 @@ const PublishQuestCardBody = ({ guildDiscordChannels, quest, orgId, existingNoti const [mentionChannel, setMentionChannel] = useState(false); const [discordRoleTagged, handleDiscordRoleTagged] = useState(null); const [message, setMessage] = useState(`${quest?.title} is now available! Check it out here and make a submission`); - const [publishQuest] = useMutation(PUSH_QUEST_DISCORD_NOTFICATION, { + const [publishQuest, { error }] = useMutation(PUSH_QUEST_DISCORD_NOTFICATION, { onCompleted: () => { setSnackbarAlertOpen(true); setSnackbarAlertMessage("Success!"); @@ -108,7 +109,18 @@ const PublishQuestCardBody = ({ guildDiscordChannels, quest, orgId, existingNoti }); setOpenPublishModal(false); }, + onError: (error) => { + const errorCode: any = error?.graphQLErrors[0]?.extensions.errorCode; + const errMessage = ERRORS_LABELS[errorCode] || "Error publishing quest"; + setSnackbarAlertOpen(true); + setSnackbarAlertMessage(errMessage); + setSnackbarAlertAnchorOrigin({ + vertical: "top", + horizontal: "center", + }); + }, }); + const mutationError = error?.graphQLErrors[0]?.extensions.errorCode; const channels = guildDiscordChannels?.map((channel) => ({ label: channel.name, value: channel.id, @@ -122,6 +134,7 @@ const PublishQuestCardBody = ({ guildDiscordChannels, quest, orgId, existingNoti } }, [guildDiscordChannels]); + const isInactiveQuest = quest?.status === QUEST_STATUSES.INACTIVE; return ( <> - setOpenPublishModal(true)}> - Publish + setOpenPublishModal(true)}> + {isInactiveQuest ? "Quest is inactive" : "Publish"} diff --git a/wondrous-bot-admin/src/utils/constants.tsx b/wondrous-bot-admin/src/utils/constants.tsx index 586010ef3..d66ebf57f 100644 --- a/wondrous-bot-admin/src/utils/constants.tsx +++ b/wondrous-bot-admin/src/utils/constants.tsx @@ -224,6 +224,7 @@ export const ERRORS_LABELS = { [REQUIREMENTS_NOT_MET_ERRORS.LEVEL]: "You must reach at least level {requiredLevel} to embark on this quest", [REQUIREMENTS_NOT_MET_ERRORS.DISCORD_ROLE]: "You must have {discordRole} role to take this quest", [REQUIREMENTS_NOT_MET_ERRORS.QUEST]: "You must complete {questTitle} before taking this quest", + quest_not_active: "This quest is not active. Please activate it first", }; export const DAO_CATEGORIES_KEYS = {