Leaderboard Component
The Leaderboard component efficiently displays and manages leaderboards in React, offering customizable styling. Users can easily monitor progress and compete through its clear interface.
Components 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 useLeaderboard
component into your React native application, follow these steps.
Import useLeaderboard Hook: Import the
useLeaderboard
component from the@questlabs/react-sdk
package.Import the Leaderboard Component: Import the
Leaderboard
component from the@questlabs/react-sdk
package.Pass the Required Props: Pass the required props to the
useLeaderboard
. The required props arequestUserId
, anduserToken
or if user don't have quest User id then they can pass ownuserId
to get questUserId and Token.
import { useLeaderboard , Leaderboard } from "@questlabs/react-native-sdk";
Props of Leaderboard Component
The Leaderboard component accepts the following props
leadersData
ITopThree[]
Require
in offline user need to provide the require filed data.
loading
boolean
Optional
don't use in offline mode.
cardTitle
string
Optional
Title for list.
cardDescription
string
Optional
Description for list.
header
string
Optional
Header text for component.
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 {
Description?: TextStyle;
Footer?: {
FooterStyle?: ViewStyle;
FooterText?: TextStyle;
FooterIcon?: TextStyle;
};
Form?: ViewStyle;
Heading?: TextStyle;
IconStyle?: TextStyle;
IndexBackground?: ViewStyle;
IndexColor?: TextStyle;
InnerBackground?: ViewStyle;
MainHeading?: TextStyle;
PointsBackground?: ViewStyle;
PointsColor?: TextStyle;
ProgressBarColor?: ViewStyle;
}
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 {Leaderboard ,useLeaderboard} from "@questlabs/react-native-sdk";
const DemoComponent = () => {
// const LeaderboardItem = useLeaderboard({
// questId: "Your-Quest_ID" ,
// userId:"5235trfet365try67ywry5"
// })
const LeaderboardItem = useLeaderboard({
questUserId: "Your-user-id",
questToken: "Your-Token-id"
});
return (
<>
<Leaderboard
leadersData={LeaderboardItem.leadersData}
loading={LeaderboardItem.loading}
cardDescription="this is new description"
cardTitle="This is new title"
header="My leaderboard"
/* styleConfig={{
Description: { color: "red" },
Footer: {
FooterIcon: { color: "red" },
},
Form: {
backgroundColor: "red",
},
Heading: { color: "orange" },
IconStyle: { color: "black" },
IndexBackground: { backgroundColor: "red" },
IndexColor: { color: "yellow" },
InnerBackground: { backgroundColor: "yellow" },
MainHeading: { color: "yellow" },
PointsBackground: { backgroundColor: "blue" },
PointsColor: { color: "yellow" },
ProgressBarColor: { backgroundColor: "orange" },
}} */
/>
{/* <Leaderboard
leadersData={[
{
name: "ashish",
runningXP: 10000,
userId: "1111",
imageUrl: "siongpsn",
xpLimit:50000
},
{
name: "Vishal",
runningXP: 2000,
userId: "222",
imageUrl: "siongpsn",
xpLimit:5000
},
{
name: "Pankej",
runningXP: 1000,
userId: "3333",
imageUrl: "siongpsn",
xpLimit:1000
},
{
name: "Rohit",
runningXP: 500,
userId: "4444",
imageUrl: "siongpsn",
xpLimit:1000
},
{
name: "paras",
runningXP: 400,
userId: "555",
imageUrl: "siongpsn",
xpLimit:1000
},
]}
/> */}
</>
);
};
export default DemoComponent;
Demo
Last updated