Survey Form
This Component is a versatile tool for collecting valuable insights and feedback from your target audience. Use this component to create customizable surveys and gather essential data.
Component Visuals

Installation
To install the Quest react-native-sdk
into your project, follow these steps:
Open your terminal/command prompt.
Navigate to your project's root directory using the
cd
command if you're not already there.Run the following command to install the
quest-sdk
package using npm:
npm install @questlabs/react-native-sdk
This command will download and install the package and its dependencies into your project.
Usage
Root Component
Import the QuestProvider Component: Import the
QuestProvider
component from the@questlabs/react-sdk
package.
import { QuestProvider } from '@questlabs/react-sdk';
Pass the Required Props: Pass the required props to the
QuestProvider
. The required props areapiKey
,entityId,
authenticationToken
andfontFamily.
Component Usage
To integrate the useSurvey
component into your React native application, follow these steps.
Import useSurvey Hook: Import the
useSurvey
component from the@questlabs/react-sdk
package.Import the SurveyForm Component: Import the
SurveyForm
component from the@questlabs/react-sdk
package.Pass the Required Props: Pass the required props to the
useSurvey
. The required props arequestId
,questUserId
, andquestToken
or if user don't have quest User id then they can pass own userId to get questUserId and Token.
import { useSurvey , SurveyForm } from "@questlabs/react-native-sdk";
Props of SurveyForm Component
The Gamified component accepts the following props
questId
string
Optional
Provied questId
questUserId
string
Optional
Provied the userId
userToken
string
Optional
Provied Quest Token
loading
boolean
Optional
don't use in offline mode.
campaignVariationId
string
Optional
Id For verification.
onError
Function
Optional
For Showing the Error.
actions
ICriteria
require
in offline user need to provide the require filed data.
title
string
Optional
Component Header text.
description
string
Optional
Component Description text.
itemsPerPage
number
Optional
Number of pages at the time
ratingType
"emoji" | "number" | "colored" | "star"
Optional
What kinfd of rating user want.
styleConfig
Object
Optional
An object containing Styling properties for styling various components within the get started process, including form, topbar, headings, descriptions, and buttons.
Style Props
styleConfig {
Form?: ViewStyle;
Topbar?: ViewStyle;
Heading?: TextStyle;
Description?: TextStyle;
Input?: ViewStyle;
Label?: TextStyle;
PrimaryButton?: ViewStyle | TextStyle;
SecondaryButton?: ViewStyle | TextStyle;
MultiChoice?: {
style?: ViewStyle;
selectedStyle?: ViewStyle;
};
Footer?: {
FooterStyle?: ViewStyle;
FooterText?: TextStyle;
FooterIcon?: TextStyle;
};
}
Example Usage
App.js
import { SafeAreaView, StyleSheet, StatusBar } from "react-native";
import React, { useState } from "react";
import { QuestProvider } from "@questlabs/react-native-sdk";
import DemoComponent from "./DemoComponent";
export default function App() {
return (
<SafeAreaView style={styles.container}>
<StatusBar />
<QuestProvider
apiKey="Your-Api-Key"
apiSecret="Your-Api-Secret"
entityId="Your-Api-entityId"
authenticationToken="Your-authentication-token"
fontFamily= "Your-Font-FamFamily"
>
<DemoComponent />
</QuestProvider>
</SafeAreaView>
);
}
DemoComponent.tsx
import React from "react";
import {SurveyForm,useSurvey } from "@questlabs/react-native-sdk";
const DemoComponent = () => {
// const survey= useSurvey({
// questId: "Your-Quest_ID" ,
// userId:"5235trfet365try67ywry5"
// })
const survey= useSurvey({
questId: "Your-Quest_ID" ,
questUserId: "Your-user-id",
questToken: "Your-Token-id"
});
return (
<>
<SurveyForm
questId={survey.questId}
userToken={survey.userToken}
questUserId={survey.questUserId}
actions={survey.actions}
title={survey.title}
description={survey.description}
campaignVariationId={survey.campaignVariationId}
loading={survey.loading}
onError={console.log}
itemsPerPage={2}
ratingType="star"
/* styleConfig={{
Description:{color:'red'},
Footer:{FooterIcon:{color:"red"},FooterStyle:{backgroundColor:"orange"},FooterText:{color:"white"}},
Form:{backgroundColor:"#d4c9ab"},
Heading:{color:"yellow"},
Input:{backgroundColor:"red"},
Label:{color:"blue"},
Topbar:{backgroundColor:"#c7b279",borderTopEndRadius:12,borderTopStartRadius:12},
PrimaryButton:{backgroundColor:"#594c27"},
SecondaryButton:{backgroundColor:"#7a6935"},
}} */
/>
</>
);
};
export default DemoComponent;
Demo
Last updated