1.58.3 • Published 1 year ago

@comparaonline/admin v1.58.3

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Comparaonline | Admin generator

A simple and configurable base template for generating admins without the overload of unnecessary libraries.

Installation

You can install it using: npm

npm install @comparaonline/admin

yarn

yarn add @comparaonline/admin

Usage

import React from 'react';
import ReactDOM from 'react-dom/client';
import '@comparaonline/admin/index.css';
import { Admin } from '@comparaonline/admin';

ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
  <React.StrictMode>
    <Admin />
  </React.StrictMode>
);

This usage will render the welcome screen. In order to start rendering routes, you'll need to set routes prop:

import React from 'react';
import ReactDOM from 'react-dom/client';
import '@comparaonline/admin/index.css';
import { Admin } from '@comparaonline/admin';
import { routes } from './example';

ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
  <React.StrictMode>
    <Admin routes={routes} />
  </React.StrictMode>
);

Those are a list of objects containing the following fields:

export type Route = {
  /**
   * Route element.
   * @see {@link https://v5.reactrouter.com/web/api/Route|react-router-dom Route}
   */
  route: ReactElement;
  /**
   * Label to be displayed on
   * aside menu.
   */
  menuLabel?: string;
  /**
   * Icon to be displayed on
   * aside menu, next to 'menuLabel'.
   */
  menuIcon?: ReactElement;
  /**
   * Skip aside menu entry.
   */
  menuSkip?: boolean;
  /**
   * Array of roles that
   * can access content.
   */
  privileges?: string[];
  /**
   * Array of companies that
   * can access content.
   */
  companiesPrivileges?: string[];
  /**
   * Main title to be displayed on
   * the page.
   */
  title?: string;
  /**
   * Subtitle to be displayed on
   * the page.
   */
  subtitle?: string;
  /**
   * Has page wrapper structure
   * (title, subtitle).
   */
  hasPageWrapper?: boolean;
  /**
   * Has width wrapper structure.
   */
  hasWrapper?: boolean;
  hasLayout?: boolean;
  key?: number;
};

By default, authentication is not enabled, to start using it, you'll need to set an authProvider:

import React from 'react';
import ReactDOM from 'react-dom/client';
import '@comparaonline/admin/index.css';
import { Admin } from '@comparaonline/admin';
import { routes, authProvider } from './example';

ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
  <React.StrictMode>
    <Admin routes={routes} authProvider={authProvider} />
  </React.StrictMode>
);

These provider has this structure:

export type AuthProvider = {
  login: (
    params?: Record<string, unknown> | unknown
  ) => Promise<{ redirectTo?: string | boolean } | void>;
  logout: (params?: Record<string, unknown> | unknown) => Promise<void | boolean | string>;
  checkAuth: (params?: Record<string, unknown> | unknown) => Promise<void>;
  googleLogin?: (
    params?: Record<string, unknown> | unknown
  ) => Promise<{ redirectTo?: string | boolean } | void>;
  restorePassword?: (params?: Record<string, unknown> | unknown) => Promise<{
    status: STATUS.SUCCESS | STATUS.ERROR;
    message: string;
    username: string;
  }>;
  editUser?: () => void;
};

Contributing

Read the contributing guide to learn about our development process and how to build, test and commit your changes to this repository.

1.58.3

1 year ago

1.58.1

1 year ago

1.58.2

1 year ago

1.58.0

2 years ago

1.57.0

2 years ago

1.56.3

2 years ago

1.56.2

2 years ago

1.56.1

2 years ago

1.56.0

2 years ago

1.44.0

2 years ago

1.55.0

2 years ago

1.45.1

2 years ago

1.45.0

2 years ago

1.45.3

2 years ago

1.45.2

2 years ago

1.45.5

2 years ago

1.45.4

2 years ago

1.45.6

2 years ago

1.36.1

2 years ago

1.36.4

2 years ago

1.36.5

2 years ago

1.36.2

2 years ago

1.36.3

2 years ago

1.36.8

2 years ago

1.36.9

2 years ago

1.36.6

2 years ago

1.36.7

2 years ago

1.47.0

2 years ago

1.50.0

2 years ago

1.37.0

2 years ago

1.37.1

2 years ago

1.36.12

2 years ago

1.36.11

2 years ago

1.36.10

2 years ago

1.36.14

2 years ago

1.36.13

2 years ago

1.40.0

2 years ago

1.40.2

2 years ago

1.40.1

2 years ago

1.40.4

2 years ago

1.40.3

2 years ago

1.48.0

2 years ago

1.48.1

2 years ago

1.51.0

2 years ago

1.51.2

2 years ago

1.51.1

2 years ago

1.38.2

2 years ago

1.38.3

2 years ago

1.38.0

2 years ago

1.38.1

2 years ago

1.38.6

2 years ago

1.38.4

2 years ago

1.38.5

2 years ago

1.41.1

2 years ago

1.41.0

2 years ago

1.49.0

2 years ago

1.52.1

2 years ago

1.52.0

2 years ago

1.52.3

2 years ago

1.52.2

2 years ago

1.39.0

2 years ago

1.43.11

2 years ago

1.43.10

2 years ago

1.42.0

2 years ago

1.42.2

2 years ago

1.42.1

2 years ago

1.42.4

2 years ago

1.42.3

2 years ago

1.53.0

2 years ago

1.55.1

2 years ago

1.43.1

2 years ago

1.43.0

2 years ago

1.43.3

2 years ago

1.43.2

2 years ago

1.43.5

2 years ago

1.43.4

2 years ago

1.43.7

2 years ago

1.43.6

2 years ago

1.43.9

2 years ago

1.43.8

2 years ago

1.54.0

2 years ago

1.33.1

2 years ago

1.33.2

2 years ago

1.32.0

2 years ago

1.32.1

2 years ago

1.34.0

2 years ago

1.30.4

2 years ago

1.34.1

2 years ago

1.33.0

2 years ago

1.35.1

2 years ago

1.35.2

2 years ago

1.35.0

2 years ago

1.36.0

2 years ago

1.31.1

2 years ago

1.31.0

2 years ago

1.18.0

2 years ago

1.21.0

2 years ago

1.21.1

2 years ago

1.25.0

2 years ago

1.29.0

2 years ago

1.19.0

2 years ago

1.22.0

2 years ago

1.22.3

2 years ago

1.26.0

2 years ago

1.22.1

2 years ago

1.22.2

2 years ago

1.26.1

2 years ago

1.23.0

2 years ago

1.27.0

2 years ago

1.27.1

2 years ago

1.30.2

2 years ago

1.30.3

2 years ago

1.30.0

2 years ago

1.30.1

2 years ago

1.17.0

2 years ago

1.20.1

2 years ago

1.20.0

2 years ago

1.24.0

2 years ago

1.28.1

2 years ago

1.28.2

2 years ago

1.28.0

2 years ago

1.15.7

2 years ago

1.16.0

2 years ago

1.14.0

2 years ago

1.15.0

2 years ago

1.15.4

2 years ago

1.15.3

2 years ago

1.15.2

2 years ago

1.15.1

2 years ago

1.15.6

2 years ago

1.15.5

2 years ago

1.13.2

2 years ago

1.13.1

2 years ago

1.12.3

2 years ago

1.12.2

2 years ago

1.12.1

2 years ago

1.12.0

2 years ago

1.10.2

2 years ago

1.12.4

2 years ago

1.8.0

2 years ago

1.11.12

2 years ago

1.11.10

2 years ago

1.11.11

2 years ago

1.9.5

2 years ago

1.9.4

2 years ago

1.9.3

2 years ago

1.9.2

2 years ago

1.11.0

2 years ago

1.11.4

2 years ago

1.11.3

2 years ago

1.13.0

2 years ago

1.11.2

2 years ago

1.11.1

2 years ago

1.11.8

2 years ago

1.11.7

2 years ago

1.11.6

2 years ago

1.11.5

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

1.11.9

2 years ago

1.10.1

2 years ago

1.10.0

2 years ago

1.7.0

3 years ago

1.6.0

3 years ago

1.5.14

3 years ago

1.5.13

3 years ago

1.5.12

3 years ago

1.5.11

3 years ago

1.5.10

3 years ago

1.5.9

3 years ago

1.5.8

3 years ago

1.5.7

3 years ago

1.5.6

3 years ago

1.5.5

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.2.5

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago