Skip to content

LogoutButton ​

A pre-styled button component for logging out the current user.

Import ​

tsx
import { LogoutButton } from "@use-glyph/sdk-react";

Usage ​

INFO

To use the LogoutButton component, you need to import the styles.

tsx
import "@use-glyph/sdk-react/style.css";
css
@import "@use-glyph/sdk-react/style.css";
tsx
import { LogoutButton } from "@use-glyph/sdk-react";
import { GlyphProvider } from "@use-glyph/sdk-react";

function App() {
	return (
		<GlyphProvider>
			<LogoutButton />
		</GlyphProvider>
	);
}

Props ​

The LogoutButton component does not accept any props. It automatically handles the logout process and displays appropriate loading states.

States ​

The button automatically handles different states:

  • Default: Shows "Sign out" or similar text
  • Loading: Shows a loading spinner when the logout process is in progress
  • Hidden/Disabled: Button is not visible or is disabled when the user is not authenticated

Example in User Profile ​

tsx
import { LogoutButton } from "@use-glyph/sdk-react";
import { useGlyph } from "@use-glyph/sdk-react";

function UserProfile() {
	const { authenticated, user } = useGlyph();

	if (!authenticated) {
		return <p>Please sign in to view your profile</p>;
	}

	return (
		<div className="user-profile">
			<h2>Welcome, {user?.name}</h2>
			<div className="profile-details">{/* User profile information */}</div>
			<div className="profile-actions">
				<LogoutButton />
			</div>
		</div>
	);
}

Example in Navigation Bar ​

tsx
import { LogoutButton, LoginButton } from "@use-glyph/sdk-react";
import { useGlyph } from "@use-glyph/sdk-react";

function NavigationBar() {
	const { authenticated, user } = useGlyph();

	return (
		<nav className="main-nav">
			<div className="nav-logo">My App</div>
			<div className="nav-links">
				<a href="/">Home</a>
				<a href="/features">Features</a>
				<a href="/pricing">Pricing</a>
			</div>
			<div className="nav-auth">
				{authenticated ? (
					<div className="user-menu">
						<span>Hello, {user?.name}</span>
						<LogoutButton />
					</div>
				) : (
					<LoginButton />
				)}
			</div>
		</nav>
	);
}

Styling ​

The button uses Tailwind CSS classes prefixed with gw- to avoid conflicts with your application's styles. The default styling includes:

  • Primary color background
  • White text
  • Rounded corners
  • Consistent padding and height

You can target these classes in your CSS to customize the appearance further.

Custom Logout Button ​

If you need more control over the logout process or button appearance, you can create a custom logout button using the useGlyph hook:

tsx
import { useGlyph } from "@use-glyph/sdk-react";

function CustomLogoutButton() {
	const { logout, authenticated } = useGlyph();

	if (!authenticated) {
		return null;
	}

	return (
		<button onClick={logout} className="your-custom-button-class">
			Sign Out
		</button>
	);
}