Login Component

Our login component provides a simple means to incorporate secure user authentication into React apps. Easily tailor the login UI to fit your project's needs with various customization options.

Component Visuals

To unlock early access to the component Get Access

Installation

To install the Quest react-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-sdk

This command will download and install the package and its dependencies into your project.

Make sure your project has npm and Node.js installed, and that you have the necessary permissions to install packages in your project directory.


Props of Login Component

The QuestLogin component accepts the following props

Prop NameTypeRequiredDetails

googleClientId

string

required

The Google Client ID for OAuth 2.0 authentication.

redirectUri

string

required (google login)

The URI where users will be redirected after authentication. Ensure that this URL matches the one configured in your OAuth provider (Google Console).

redirectURL

string

required

The URL where users will be redirected after authentication.

btnColor

string

optional

The background color of the login button

btnTextColor

string

optional

The text color of the login button.

textColor

string

optional

The text color of other UI elements in the component.

font

string

optional

set your font family

backgroundColor

string

optional

The background color of the entire component.

headingText

string

optional

set the main heading of the component

descriptionText

string

optional

set the main description of the component

google

boolean

optional

When set to true, you will see only login with Google option

googleButtonText

string

optional

set the text in google button

IconColor

string

optional

set the icon color

email

boolean

optional

When set to true, you will see only login with Email option

onSubmit

function

optional

A callback function trigger on when click on submit button took an object with key userId,token

onError

function

optional

A callback function trigger on when component through an error

showFooter

boolean

optional

true: show quest footer, false: hide quest footer

styleConfig

object

optional

An object containing CSS properties for styling various components within the Login process, including headings, form, text area, descriptions, inputs, labels, and buttons.

IconStyle

object

optional

An object containing CSS properties for Icons, it includes BorderColor, Background, Color

You can customize the UI with type of styleConfig would be

styleConfig?: {
    Heading?: CSSProperties;
    Description?: CSSProperties;
    Input?: CSSProperties;
    Label?: CSSProperties;
    TextArea?: CSSProperties;
    PrimaryButton?: CSSProperties;
    SecondaryButton?: CSSProperties;
    Form?:CSSProperties;
    Footer?: {
      FooterStyle?: CSSProperties;
      FooterText?: CSSProperties;
      FooterIcon?: CSSProperties;
    };
    IconStyle?: {
      BorderColor?: string
      Background?: string;
      color?: string;
    }
    OtpInput?: CSSProperties
  };

Usage

To integrate the QuestLogin component into your React application, follow these steps

  • Import the CSS: In your JavaScript or TypeScript file where you're using the QuestLogin, import the CSS styles for the component. This ensures that the component's styling is applied correctly.

import '@questlabs/react-sdk/dist/style.css'
  • Import the QuestLogin Component: Import the QuestLogincomponent from the @questlabs/react-sdk package.

  • Import the QuestProvider Component: Import the QuestProvider component from the @questlabs/react-sdk package.

import { QuestProvider }, QuestLogin from '@questlabs/react-sdk';
  • Pass the Required Props: Pass the required props to the QuestProvider. The required props are apiKey, apiSecret, and entityId. and required props for the QuestLogin component are googleClientId, redirectURL, redirectUri

<QuestProvider 
  apiKey={"api key"}
  entityId={"your entity Id"}
  featureFlags={{}}
  themeConfig={{
   primaryColor: '',
   secondaryColor: '',
   borderColor: '',
   buttonColor: '',
   backgroundColor: 'white',
   fontFamily: '',
}}
  >
  <Login
     googleClientId="your client id"
     font='Hanken Grotesk'
     textColor="black"
     btnTextColor="black"
     backgroundColor="yellow"
     btnColor="skyblue"
     redirectUri="https://app.questapp.ai/login"
     redirectURL="https://www.questlabs.ai/"
     google={true}
     email={true}
     styleConfig = {{
      Form:{},
      Heading:{},
      Description:{},
      Input:{},
      Label:{},
      TextArea:{},
      PrimaryButton:{},
      SecondaryButton:{},
      Footer: {
         FooterStyle: {},
         FooterText: {},
         FooterIcon: {}
      }
    }}
   //  headingText=''
   //  descriptionText=''
   //  googleButtonText=''
   //  IconColor=''
   //  showFooter={false}
  />
</QuestProvider>

Replace "your-api-key", and "your-entity-id" with your actual Quest API credentials

Replace "your-google-client-id", "your-redirect-uri", and "your-redirect-url" with your actual configuration details.


Example Usage

Here's an example of how to use the QuestLogin component within your React application

import { QuestProvider, QuestLogin } from '@questlabs/react-sdk';
import '@questlabs/react-sdk/dist/style.css';

function App() {
  return (
    <div>
      <QuestProvider 
       apiKey={"api key"}
       entityId={"your entity Id"}
       featureFlags={{}}
       themeConfig={{
        primaryColor: '',
        secondaryColor: '',
        borderColor: '',
        buttonColor: '',
        backgroundColor: 'white',
        fontFamily: '',
     }}
       >
       <Login
          googleClientId="your client id"
          font='Hanken Grotesk'
          textColor="black"
          btnTextColor="black"
          backgroundColor="yellow"
          btnColor="skyblue"
          redirectUri="https://app.questapp.ai/login"
          redirectURL="https://www.questlabs.ai/"
          google={true}
          email={true}
          styleConfig = {{
           Form:{},
           Heading:{},
           Description:{},
           Input:{},
           Label:{},
           TextArea:{},
           PrimaryButton:{},
           SecondaryButton:{},
           Footer: {
              FooterStyle: {},
              FooterText: {},
              FooterIcon: {}
           }
         }}
        //  headingText=''
        //  descriptionText=''
        //  googleButtonText=''
        //  IconColor=''
        //  showFooter={false}
       />
     </QuestProvider>


    </div>
  );
}

export default App;

Demo

In this video, you'll learn:

  1. How to set up the QuestProvider with your API credentials.

  2. Configuration of the QuestLogin component with required props.

  3. Customization options for the login component.

  4. Integration of the component into your React application.

The above example uses all the props.


Last updated