@akinon/app-client
TypeScript icon, indicating that this package has built-in type declarations

0.8.1 • Public • Published

Akinon App Client Library

The app-client library provides a React context and hooks for integrating micro-frontend applications with the main application shell, enabling actions like navigation, displaying modals, and other inter-app communications.

Installation

To add the app-client library to your project, run:

pnpm install @akinon/app-client

Usage

First, wrap your micro-frontend's root component with the AppClientProvider:

import React from 'react';
import ReactDOM from 'react-dom';
import { AppClientProvider } from '@akinon/app-client';
import App from './App';

ReactDOM.render(
  <AppClientProvider config={{ isDev: true }}>
    <App />
  </AppClientProvider>,
  document.getElementById('root')
);

Then, use the useAppClient hook within your components to access client functionalities:

import React from 'react';
import { useAppClient } from '@akinon/app-client';

const MyComponent = () => {
  const { navigate } = useAppClient();

  return <button onClick={() => navigate('/path')}>Go somewhere</button>;
};

API

AppClientProvider

Props:

  • config: Configuration for the client application, including isDev and forceRedirect.

useAppClient Hook

Provides access to:

  • navigate(path: string): Function to navigate to a different route.
  • invokeAction(actionKey: string, ...args: any[]): Invoke a custom action defined in the app shell.
  • Helper functions for showing modals, toasts, and more.
  • data: Data shared by host applications.

Configuration

The AppClientProvider accepts the following configuration options:

  • isDev: Enables development mode.
  • forceRedirect: Forces the application to load in an iframe if not already.

For more information on configuration and usage, please refer to the detailed documentation.

/@akinon/app-client/

    Package Sidebar

    Install

    npm i @akinon/app-client

    Weekly Downloads

    12

    Version

    0.8.1

    License

    none

    Unpacked Size

    28.1 kB

    Total Files

    14

    Last publish

    Collaborators

    • akinon