0.3.11 • Published 2 days ago

@bigbinary/neeto-approvals-frontend v0.3.11

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
2 days ago

neeto-approvals-nano

The neeto-approvals-nano manages approvals within neeto applications. The nano exports the @bigbinary/neeto-approvals-frontend NPM package and neeto-approvals-engine Rails engine for development.

Contents

  1. Development with Host Application
  2. Instructions for Publishing

Development with Host Application

Engine

The engine is used to manage approval requests and approval templates for an organization.

Installation

  1. Add this line to your application's Gemfile:

    source "NEETO_GEM_SERVER_URL" do
       # ..existing gems
    
       gem 'neeto-approvals-engine'
    end
  2. And then execute:

    bundle install
  3. Add this line to your application's config/routes.rb file:
    mount NeetoApprovalsEngine::Engine => "/neeto_approvals_engine"
  4. Run the following command to copy the migrations from the engine to the host application:
    bundle exec rails neeto_approvals_engine:install:migrations
  5. Add the migrations to the database:
    bundle exec rails db:migrate

Usage

You can learn more about the setup and usage here: 1. Models 2. Controllers 3. Services

Frontend package

The package exports three components: Approvals, Form, and Public.

Installation

  1. neeto-approvals-nano has a few peer dependencies that are required for the proper functioning of the package. Install all the peer dependencies using the below command:

    yarn add @bigbinary/neeto-icons@1.8.46 @bigbinary/neetoui@4.1.33 axios@1.2.1 classnames@2.3.2 formik@2.2.9 ramda@0.28.0 react-router-dom@5.3.3 react-toastify@8.2.0 react-query@3.39.2 yup@0.32.11
  2. Now install the latest neeto-approvals-nano package using the below command:

    yarn add @bigbinary/neeto-approvals-frontend

Instructions for development

Check the Frontend package development guide for step-by-step instructions to develop the frontend package.

Components

Approvals (source code)

This component manages approval requests, approval templates and history of approval requests. It consists of three tabs: Pending, Templates, and History 1. Pending - Lists all pending approval requests. 2. Templates - Lists all approval templates. 3. History - Lists all approved, rejected, and cancelled approval requests.

Props
  • config: Configuration object that includes specifications for paths, URLs, template placeholders and breadcrumbs. It also allows optional configurations for help articles.
Configuration

Refer to the Approvals section for detailed information on the available configurations for the Approvals component.

Usage
import React from "react";

import { Approvals } from "@bigbinary/neeto-approvals-frontend";
import { routes } from "common/routes";
import { BrowserRouter, Redirect, Route, Switch } from "react-router-dom";
import { ToastContainer } from "react-toastify";

import SideBar from "./Common/SideBar";


const Main = () => (
  <BrowserRouter>
    <div className="flex">
      <SideBar />
      <Switch>
        <Route
          path={routes.approvals}
          render={() => (
            <Approvals
              config={APPROVALS_CONFIG}
            />
          )}
        />
      </Switch>
    </div>
    <ToastContainer />
  </BrowserRouter>
);

export default Main;

Form (source code)

This component handles creation and updation of approval templates.

Props
  • isLoading - Boolean value to show the loading state in the submit button
  • isOpen - Boolean value to open the pane
  • setIsPaneOpen - Set it to false to close the pane
  • requestableId - ID of the entity to which we are associating requests. This is used to parse messages based on the entity's attributes in the engine.
  • onSubmit - Function which calls the API to submit approval request details such as request message, template title, approver ID and requestable ID.
Usage
import React from "react";
import { Form } from "@bigbinary/neeto-approvals-frontend";

const RequestApproval = () => {
  const { mutate: createRequest, isLoading } = useCreateRequest();

  const onSubmit = (request, template, onClose) => {
    createRequest(
      {
        request: {
          ...request,
          title: template.name,
          approverId: template.approverId,
          requestableId: requestableId, // Specify the ID of the requestable associated entity
        },
      },
      { onSuccess: onClose }
    );
  };

  return (
    <Form
      isLoading={isLoading}
      isOpen={isNewApprovalRequestPaneOpen}
      setIsPaneOpen={setIsNewApprovalRequestPaneOpen}
      requestableId={requestableId} // Specify the ID of the requestable associated entity
      onSubmit={onSubmit}
    />
  );
};

export default RequestApproval;

Public (source code)

This component is used to show the approval request detail without any user login.

Props

No props need to be passed. However, ensure that the path of the page rendering the Public component contains the id param for the request ID.

Usage
import React from "react";
import { Public } from "@bigbinary/neeto-approvals-frontend";

const PublicRequestApproval = () => {
  return (
    <Public />
  );
};

export default PublicRequestApproval;

Instructions for Publishing

Consult the building and releasing packages guide for details on how to publish.

0.3.11

2 days ago

0.3.10

13 days ago

0.3.9

1 month ago

0.3.8

2 months ago

0.3.7

2 months ago

0.3.6

2 months ago

0.3.5

2 months ago

0.3.4

2 months ago

0.3.3

2 months ago

0.3.2

2 months ago

0.3.1

2 months ago

0.3.0

4 months ago

0.2.15

4 months ago

0.2.14

5 months ago

0.2.13

6 months ago

0.0.32

11 months ago

0.0.33

9 months ago

0.0.34

8 months ago

0.2.12

6 months ago

0.2.11

6 months ago

0.2.10

6 months ago

0.1.0

8 months ago

0.1.1

8 months ago

0.2.1

8 months ago

0.2.0

8 months ago

0.2.7

6 months ago

0.2.6

6 months ago

0.2.9

6 months ago

0.2.8

6 months ago

0.2.3

7 months ago

0.2.2

8 months ago

0.2.5

7 months ago

0.2.4

7 months ago

0.0.31

11 months ago

0.0.30

11 months ago

0.0.28

1 year ago

0.0.29

1 year ago

0.0.26

1 year ago

0.0.27

1 year ago

0.0.20

1 year ago

0.0.21

1 year ago

0.0.22

1 year ago

0.0.23

1 year ago

0.0.24

1 year ago

0.0.25

1 year ago

0.0.15

1 year ago

0.0.16

1 year ago

0.0.17

1 year ago

0.0.18

1 year ago

0.0.19

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago