0.4.9 • Published 10 months ago

@futureverse/auth-ui v0.4.9

Weekly downloads
-
License
-
Repository
-
Last release
10 months ago

Futureverse Auth Ui

Provides a React theme UI provider for Futureverse Auth React.

Installation

npm:

npm install @futureverse/auth-ui --save

yarn:

yarn add @futureverse/auth-ui

pnpm:

pnpm add @futureverse/auth-ui

bun:

bun add @futureverse/auth-ui

Features

  • Light/dark mode default themes
  • Fully customizable UI
  • Plug and play components

Plug and play provider

For authClient setup please see refer to @futureverse/auth-react documentation.

import React from 'react';
import { FutureverseAuthProvider, FutureverseWagmiProvider } from '@futureverse/auth-react';
import { QueryClientProvider } from '@tanstack/react-query';
import { AuthUiProvider, DarkTheme } from '@futureverse/auth-ui';
import { State } from 'wagmi';

/**
 * Demo application example for React Auth UI provider
 */

const queryClient = new QueryClient();

export default function Providers({
  children,
  initialWagmiState,
}: {
  children: React.ReactNode;
  initialWagmiState?: State;
}) {
  return (
    <QueryClientProvider client={queryClient}>
      <FutureverseWagmiProvider
        getWagmiConfig={...} //refer to @futureverse/auth-react docs for config setup
        initialState={initialWagmiState}
      >
        <FutureverseAuthProvider authClient={...}> //refer to @futureverse/auth docs for config setup
          <AuthUiProvider
            themeConfig={DarkTheme}
            authClient={...} //refer to @futureverse/auth-react docs for config setup
          >
            {children}
          </AuthUiProvider>
        </FutureverseAuthProvider>
      </FutureverseWagmiProvider>
    </QueryClientProvider>
  );
}
import { useAuthUi } from '@futureverse/auth-ui';

export default function Page() {
  const { openLogin } = useAuthUi();

  return <button onClick={() => openLogin()}>Login</button>;
}

List of exports

Providers

Note: AuthThemeProvider is a child of AuthUiProvider

import { AuthUiProvider, AuthThemeProvider } from '@futureverse/auth-ui';

/**
 * AuthThemeProvider is used for full custom flow - not needed if using AuthUiProvider
 */

<AuthThemeProvider themeConfig={...}> //Theme object goes here
  {children}
</AuthThemeProvider>

Hooks

import { useAuthUi, useAuthTheme } from '@futureverse/auth-ui';

const { isLoginOpen, openLogin, closeLogin } = useAuthUi();
const { themeConfig } = useAuthTheme();

Themes

import { DarkTheme, LightTheme } from '@futureverse/auth-ui';
import type { ThemeConfig } from '@futureverse/auth-ui';
export type ThemeConfig = {
  theme: 'dark' | 'light';
  defaultAuthOption?: 'web3' | 'custodial';
  colors: {
    primaryColor: string; //Hex code
    socialPrimaryColor: string;
    socialSecondaryColor: string;
    secondaryColor: string;
    backgroundColor: string;
    borderColor: string;
    textColor: string;
  };
  images?: {
    backgroundImage?: string;
    logo?: string;
  };
};

Overwrite theme objects example

Note: All color values only accept hex codes.

import { DarkTheme } from '@futureverse/auth-ui';
import type { ThemeConfig } from '@futureverse/auth-ui';

const customThemeConfig: ThemeConfig = {
  ...DarkTheme,
  defaultAuthOption: 'web3',
  images: {
    logo: '/images/logo.svg',
    backgroundImage: 'https://picsum.photos/1940/1080',
  },
};

Components

All react props are dripped into the components e.g. styles/className

/**
 * Base Components
 */

export { Button, Card, Dialog, Icon, IconFactory, Image, Typography } from '@futureverse/auth-ui';

/**
 * Plug 'n' Play Components
 */

export { CustodialAuthButton, CustodialAuthOptions, Web3AuthButton, Web3AuthOptions, FuturePassAuthOptions, Modal, PortalLoader } from '@futureverse/auth-ui';

Example usage

<Typography.Subtitle
  styles={...}
  className="subtitle"
>
  Begin your journey
</Typography.Subtitle>
0.4.9

10 months ago

0.4.8

10 months ago

0.2.0-beta.2

10 months ago

0.2.0-beta.5

10 months ago

0.2.0-beta.4

10 months ago

0.2.0-beta.3

10 months ago

0.2.0-beta.1

10 months ago

0.4.5

10 months ago

0.4.4

10 months ago

0.4.7

10 months ago

0.4.6

10 months ago

0.4.3

10 months ago

0.1.0-beta.6

10 months ago

0.2.0-beta.0

10 months ago

0.1.0-beta.5

10 months ago

0.1.0-beta.3

10 months ago

0.1.0-beta.2

10 months ago

0.1.0-beta.4

10 months ago

0.1.0-beta.1

10 months ago

0.1.0-beta.0

10 months ago

0.2.15

10 months ago

0.3.0

10 months ago

0.4.1

10 months ago

0.3.2

10 months ago

0.4.0

10 months ago

0.3.1

10 months ago

0.3.4

10 months ago

0.4.2

10 months ago

0.3.3

10 months ago

0.2.14

11 months ago

0.2.13

11 months ago

0.2.12

11 months ago

0.2.11

11 months ago

0.2.10

11 months ago

0.2.7

11 months ago

0.0.2-beta.3

11 months ago

0.0.2-beta.4

11 months ago

0.2.6

11 months ago

0.2.9

11 months ago

0.0.2-beta.5

11 months ago

0.2.8

11 months ago

0.2.5

11 months ago

0.2.4

11 months ago

0.0.2-beta.2

11 months ago

0.2.3

11 months ago

0.1.0

11 months ago

0.2.1

11 months ago

0.2.0

11 months ago

0.2.2

11 months ago

0.0.2-beta.1

11 months ago

0.0.3

11 months ago

0.0.2-beta.0

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago