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

0.5.3 • 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.

Readme

Keywords

none

Package Sidebar

Install

npm i @akinon/app-client

Weekly Downloads

9

Version

0.5.3

License

none

Unpacked Size

34.1 kB

Total Files

8

Last publish

Collaborators

  • akinon