diff --git a/packages/commonwealth/client/scripts/helpers/quest.ts b/packages/commonwealth/client/scripts/helpers/quest.ts index 21fc53d8630..336e9e22028 100644 --- a/packages/commonwealth/client/scripts/helpers/quest.ts +++ b/packages/commonwealth/client/scripts/helpers/quest.ts @@ -107,6 +107,7 @@ export const doesActionRequireBasicRewardAmount = (action: QuestActionType) => { 'DiscordServerJoined', 'MembershipsRefreshed', 'LaunchpadTokenCreated', + 'ContestEnded', ]; const channelQuest: QuestActionType[] = [ 'TweetEngagement', diff --git a/packages/commonwealth/client/scripts/views/pages/CreateQuest/QuestForm/useQuestForm.ts b/packages/commonwealth/client/scripts/views/pages/CreateQuest/QuestForm/useQuestForm.ts index ad8438dc22f..084f532d812 100644 --- a/packages/commonwealth/client/scripts/views/pages/CreateQuest/QuestForm/useQuestForm.ts +++ b/packages/commonwealth/client/scripts/views/pages/CreateQuest/QuestForm/useQuestForm.ts @@ -64,6 +64,7 @@ const useQuestForm = ({ mode, initialValues, questId }: QuestFormProps) => { 'MembershipsRefreshed', 'LaunchpadTokenCreated', 'LaunchpadTokenTraded', + 'ContestEnded', ] as QuestAction[], channel: ['TweetEngagement', 'XpChainEventCreated'] as QuestAction[], }; diff --git a/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestActionCard/helpers.tsx b/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestActionCard/helpers.tsx index 4df28466473..b9bfcfa219c 100644 --- a/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestActionCard/helpers.tsx +++ b/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestActionCard/helpers.tsx @@ -18,6 +18,7 @@ export const actionCopies = { ['XpChainEventCreated']: 'Engage on Blockchain', ['LaunchpadTokenCreated']: 'Launch a Token on Common', ['LaunchpadTokenTraded']: 'Trade a Launchpad Token on Common', + ['ContestEnded']: 'Engage on a Contest till completion', }, pre_reqs: { ['SignUpFlowCompleted']: () => '', @@ -37,6 +38,7 @@ export const actionCopies = { ['XpChainEventCreated']: () => '', ['LaunchpadTokenCreated']: () => '', ['LaunchpadTokenTraded']: () => '', + ['ContestEnded']: '', }, explainer: { ['SignUpFlowCompleted']: () => '', @@ -132,6 +134,16 @@ export const actionCopies = { ), + // eslint-disable-next-line react/no-multi-comp + ['ContestEnded']: () => ( +
+ +
+ ), }, shares: { ['SignUpFlowCompleted']: '', @@ -150,5 +162,6 @@ export const actionCopies = { ['XpChainEventCreated']: '', ['LaunchpadTokenCreated']: '', ['LaunchpadTokenTraded']: '', + ['ContestEnded']: '', }, }; diff --git a/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestDetails.tsx b/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestDetails.tsx index b5ab896b108..288037e7b0c 100644 --- a/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestDetails.tsx +++ b/packages/commonwealth/client/scripts/views/pages/QuestDetails/QuestDetails.tsx @@ -312,6 +312,19 @@ const QuestDetails = ({ id }: { id: number }) => { navigate(`/explore?tab=tokens`); break; } + case 'ContestEnded': { + if (quest.community_id) { + navigate( + `/${quest.community_id}/contests`, + {}, + quest.community_id || null, + ); + } else { + // If no community context, navigate to community selection for contest view + navigate('/explore?tab=communities', {}, null); + } + break; + } default: return; }