A10 GUI Framework

Introduction

A10 GUI Framework is based off of modern web design principles. At the heart of it, we leverage a component based front-end JavaScript framework called React.js. Utilizing Redux and design patterns together, we aimed to provide a set of tools that allow for appealing, modern, and consistent web UI to be built with relative ease and simplicity.

Repository path:

Installation

$ npm i -S https://github.com/a10networks/a10-gui-framework.git

How to use

Framework’s main components like A10Provider, A10Root, A10Router and A10Container are used to build basic scaffolding.

Simple to use! For example, write import A10Provider from a10-gui-framework

Using it as html tags in render()

import { A10Provider} from 'a10-gui-framework'
ReactDOM.render(
  <A10Provider
    CONFIG={CONFIG}
    middlewares={middlewares}
    reducers={reducers}
    initState={initState}
  >
      ...
  </A10Provider>,
  document.getElementById('root'),
)

Core components

A10Provider

A10Provider is a wrapper for React-Redux Provider. We use this wrapper to wire up some global middleware to help the system monitor global data (theme, debug) or to log critical information.

Use Case

A10Root

A10Root is the place to accept initial configurations defined in a JS file and to send into Redux. A10Root is also the place to have a component context so that every descendent can access the global variables.

Use Case

A10Router

A10Router is a React Router wrapper, simplified from React Router for ease of use.

Use Case

In this case, we imported the routes from app/settings/routes.tsx. The file looks like:

On above definition, the ‘slb’, ‘virtual-server’ will combine to a route path /slb/virtual-server, and the path will route to an A10Container called THVirtualServerContainer. params is also a Frameworks preserved option. With the params option, an example virtual-service URL looks may be of the form /slb/virtual-service/:ip/:port.

A10Container

A10Container is the heavy-hitter. It is a stateful component which is connected to the Redux store. A10Container contains page elements, and could include A10Container, or A10Widgets, or external (external to this Framework) React Components.

Create Interface

Create Container

Use Case

Last updated

Was this helpful?