@questlabs/react-native-sdk
Version:
Quest react native sdk
85 lines (80 loc) • 2.07 kB
text/typescript
import { TextStyle, View, ViewStyle } from "react-native";
export interface props {
campaignVariationId?: string;
sections: ISection[];
questId: string;
questUserId?: string;
userToken?: string;
actions?: ICriteria[];
loading?: boolean;
title?: string;
description?: string;
multipleChoice?: "checkbox" | "fill";
template?: "multipage" | "single" | "oneQuestion";
onCross?: () => void;
// style?: styles;
// onSuccess?: () => void;
onError?: (
event: "VERIFY_ACTION" | "CLAIM_ACTION" | "INVALID" | "EMPTY_FIELD",
message: string,
data?: {}
) => void;
styleConfig?: styleConfig;
}
export interface ISection {
name?: string;
criteriaNames: string[];
description?: string;
heading?: string;
step?: number;
}
export interface ICriteria {
actionId: string;
title?: string;
actionType: string;
answer: (string | number)[];
options?: (string | number)[];
}
export interface styleConfig {
Form?: ViewStyle;
Topbar?: ViewStyle;
EmailError?: {
text?: "Error";
errorStyle?: ViewStyle;
};
Heading?: TextStyle;
Description?: TextStyle;
Input?: ViewStyle;
Label?: TextStyle;
PrimaryButton?: ViewStyle | TextStyle;
SecondaryButton?: ViewStyle | TextStyle;
// SingleChoice?: {
// style?:ViewStyle,
// selectedStyle?: ViewStyle
// },
MultiChoice?: {
style?: TextStyle;
selectedStyle?: ViewStyle;
};
// ProgressBar?: {
// completeTabColor?: '',
// currentTabColor?: '',
// pendingTabColor?: ''
// },
Footer?: {
FooterStyle?: ViewStyle;
FooterText?: TextStyle;
FooterIcon?: TextStyle;
};
}
// export interface styles {
// mainView?: ViewStyle;
// lineStyle?: ViewStyle;
// sectionText?: TextStyle;
// onboardingHeaderText?: TextStyle;
// onboardingDescriptionText?: TextStyle;
// inputHeaderText?: TextStyle;
// getStartButtonViewStyle?: ViewStyle;
// previousButtonViewStyle?: ViewStyle;
// footerView?: ViewStyle;
// }