Hall

Learn about Hall and find an answer to your question

React component

The @usehall/react library lets you embed your community in a few lines code in your React app. See Getting started to learn how to get your app credentials.

Installation

@usehall/react is published on the npm registry. Install it with your favorite package manager:

npm install @usehall/react

For detailed library documentation, see the API section.

User Authentication

To login the user, you can either pass the token to the component in server-side contexts (i.e. Next.js), or use a hook on the client after fetching the token from your backend. See User authentication for more info on how to create and sign the token.

Server-side example

import { HallEmbed } from "@usehall/react";

// Using React Server Components, i.e. Next.js App Router
export async function Page() {
  const userToken = await getJWTForUser("userId");

  return <HallEmbed appId="YOUR APP ID" userToken={userToken} />;
}

Client-side example

import { HallEmbed, useHallEmbed } from "@usehall/react";

// Using a React component rendered on the client
export function Component() {
  const { login } = useHallEmbed();

  useEffect(() => {
    // getUserTokenAPI makes a call to your backend for the user's token
    const userToken = getUserTokenAPI().then((token) => login(token));
  }, []);

  return <HallEmbed appId="YOUR APP ID" />;
}

API

HallEmbed component

Minimal example

import { HallEmbed } from "@usehall/react";

export function Component() {
  return <HallEmbed appId="YOUR APP ID" />;
}

Required props

Name Type Description
appId string Your embed's unique app ID. You can see get this from your developer settings.

Optional props

Name Type Description
className string className to apply to the container.
disableRouting boolean Prevents the embed from reflecting the path in the window's url hash. See Routing for more information.
disableTitle boolean Prevents the embed from updating window.title to reflect the current route.
disableToast boolean Prevents the embed from displaying toast notification. notifications
id string id of the container created internally. Defaults to hall-embed-container.
initialPath string The initial path to load. See Routing for more information.
onLoad () => void Callback fired when the embed is loaded.
style CSSProperties Inline styles to apply to the container. div
userToken string Signed token from your server to log the user in automatically. See User authentication for more information.
theme 'light' | 'dark' Override the light/dark theme for the embed. Defaults to the user's preference.

useHallEmbed React hook

Minimal example

import { HallEmbed, useHallEmbed } from "@usehall/react";

export function Component() {
  const { login } = useHallEmbed();

  return <HallEmbed appId="YOUR APP ID" />;
}

Parameters

None

Returns

{
  login: (userToken: string) => void;
}

Where userToken is the signed token to authenticate the user.

Ask in our community

Question not answered? Ask us and other customers in the Hall customer community.

Go to community

Contact support

Message our support team privately to discuss anything specific to your organization.

Contact support