UNPKG

@lofter-mission/react

Version:

React 组件库,基于 @lofter-mission/core 实现活动任务相关组件

113 lines (112 loc) 3.64 kB
import { ReactNode, CSSProperties, HTMLAttributes } from 'react'; import { MissionApiService, MissionItem } from '@lofter-mission/core'; export interface BaseStyleProps { className?: string; style?: CSSProperties; } export interface ActivityInfo { activityCode: string; name?: string; status?: string; [key: string]: any; } export type Mission = MissionItem & { tabName?: string; }; export interface UserInfo { points?: number; level?: number; nickname?: string; [key: string]: any; } export type PrizeItem = import('@lofter-mission/core').PrizeItem; export type AwardActivity = import('@lofter-mission/core').AwardActivity; export interface AwardItemViewProps extends BaseStyleProps { activityInfo?: ActivityInfo; prize: PrizeItem; onRedeem?: (prize: PrizeItem, points: number) => void; cardClassName?: string; imageClassName?: string; titleClassName?: string; buttonClassName?: string; maxedOutText?: string; redeemText?: string; customRedeem?: (prize: PrizeItem, callback: (otherParams?: any) => Promise<{ status: boolean; points?: number; }>) => Promise<void>; } export interface AwardListViewProps extends BaseStyleProps { activityInfo?: ActivityInfo; onPrizeRedeem?: (prize: PrizeItem, points?: number) => void; callbackPoints?: (points?: number) => void; customRedeem?: (prize: PrizeItem, callback: (otherParams?: any) => Promise<{ status: boolean; points?: number; }>) => Promise<void>; loadingClassName?: string; errorClassName?: string; emptyClassName?: string; itemsClassName?: string; loadingText?: string; errorText?: string; emptyText?: string; } export interface ActivityContainerProps extends BaseStyleProps, Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'> { activityCode: string; children?: ReactNode; presetMissionApiService?: MissionApiService; presetActivityInfo?: any; } export interface ActivityUserProps extends BaseStyleProps { activityInfo?: ActivityInfo; loadingClassName?: string; errorClassName?: string; noDataClassName?: string; loadingText?: string; errorText?: string; noDataText?: string; pointsText?: string; } export interface MissionItemViewProps extends BaseStyleProps { activityInfo?: ActivityInfo; mission: Mission; onProgressUpdate?: (mission: Mission, points?: number) => void; onCustomShare?: (mission: Mission) => void; cardClassName?: string; titleClassName?: string; rewardClassName?: string; actionClassName?: string; buttonClassName?: string; completedText?: string; defaultActionText?: string; } export interface MissionListViewProps extends BaseStyleProps { activityInfo?: ActivityInfo; tabName?: string; onMissionProgressUpdate?: (mission: Mission, points?: number) => void; onCustomShare?: (mission: Mission) => void; loadingClassName?: string; errorClassName?: string; emptyClassName?: string; itemsClassName?: string; loadingText?: string; errorText?: string; emptyText?: string; isShowStepMission?: boolean; } export interface MissionPopupViewProps extends BaseStyleProps { activityInfo?: ActivityInfo; visible?: boolean; onClose?: () => void; onMissionProgressUpdate?: (mission: Mission) => void; overlayClassName?: string; popupClassName?: string; headerClassName?: string; contentClassName?: string; closeButtonClassName?: string; title?: string; loadingText?: string; errorText?: string; retryText?: string; }