Skip to Content
DocumentationWhiteLabel Widget · Widget React SDKWidgetsQuest

Quest Widget

QuestWidget displays quest details, tasks, rewards, eligibility, and submission flow.

Import

import { QuestWidget } from "@taskon/widget-react/quest";

Usage

Campaign ID Mode

<QuestWidget campaignId={12345} />

Cloud Widget Mode

<QuestWidget widgetId={987} />

Use widgetId when config/theme is managed in TaskOn dashboard (Business Entity Hub / White-Label / Widget).

Key Props

PropTypeDescription
campaignIdnumberCampaign ID to render (required when widgetId is not provided)
widgetIdnumberLoad function config and theme from cloud
themeMode"light" | "dark" | "auto"Override cloud mode at runtime
isPreviewbooleanPreview mode
showBannerbooleanShow/hide banner
showTitlebooleanShow/hide title
showDescriptionbooleanShow/hide description
showParticipantsbooleanShow/hide participant count
showSharebooleanShow/hide share button
shareUrlstringCustom share URL
shareTextstringCustom share text
rewardDisplayMode"popup" | "redirect"Reward detail display mode
rewardRedirectUrlstringRedirect URL when rewardDisplayMode="redirect"

Useful Callbacks

CallbackSignatureDescription
onLoaded(campaign) => voidCalled when campaign data is loaded
onTaskCompleted(taskId) => voidCalled when a task is completed
onSubmitSuccess() => voidCalled when quest submit succeeds
onError(error) => voidCalled on widget errors
onConnectWallet() => voidCalled when wallet connection is required

Example

QuestPage.tsx
import { TaskOnProvider, ThemeProvider } from "@taskon/widget-react/core"; import { QuestWidget } from "@taskon/widget-react/quest"; function QuestPage() { return ( <TaskOnProvider config={{ clientId: "YOUR_CLIENT_ID" }}> <ThemeProvider theme={{ mode: "light" }}> <QuestWidget campaignId={12345} showBanner onSubmitSuccess={() => { console.log("Quest submitted"); }} /> </ThemeProvider> </TaskOnProvider> ); }
Last updated on