0.4.9 • Published 8 months ago

@futureverse/auth-ui v0.4.9

Weekly downloads
-
License
-
Repository
-
Last release
8 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

8 months ago

0.4.8

8 months ago

0.2.0-beta.2

8 months ago

0.2.0-beta.5

8 months ago

0.2.0-beta.4

8 months ago

0.2.0-beta.3

8 months ago

0.2.0-beta.1

8 months ago

0.4.5

8 months ago

0.4.4

8 months ago

0.4.7

8 months ago

0.4.6

8 months ago

0.4.3

8 months ago

0.1.0-beta.6

8 months ago

0.2.0-beta.0

8 months ago

0.1.0-beta.5

8 months ago

0.1.0-beta.3

8 months ago

0.1.0-beta.2

8 months ago

0.1.0-beta.4

8 months ago

0.1.0-beta.1

8 months ago

0.1.0-beta.0

9 months ago

0.2.15

9 months ago

0.3.0

9 months ago

0.4.1

9 months ago

0.3.2

9 months ago

0.4.0

9 months ago

0.3.1

9 months ago

0.3.4

9 months ago

0.4.2

9 months ago

0.3.3

9 months ago

0.2.14

9 months ago

0.2.13

9 months ago

0.2.12

9 months ago

0.2.11

9 months ago

0.2.10

9 months ago

0.2.7

9 months ago

0.0.2-beta.3

9 months ago

0.0.2-beta.4

9 months ago

0.2.6

9 months ago

0.2.9

9 months ago

0.0.2-beta.5

9 months ago

0.2.8

9 months ago

0.2.5

9 months ago

0.2.4

9 months ago

0.0.2-beta.2

9 months ago

0.2.3

10 months ago

0.1.0

10 months ago

0.2.1

10 months ago

0.2.0

10 months ago

0.2.2

10 months ago

0.0.2-beta.1

10 months ago

0.0.3

10 months ago

0.0.2-beta.0

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago