@bigbinary/neeto-approvals-frontend
v1.2.3
Published
To manage approvals across neeto products.
Downloads
436
Readme
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
Development with Host Application
Engine
The engine is used to manage approval requests and approval templates for an organization.
Installation
- Add this line to your application's Gemfile:
source "NEETO_GEM_SERVER_URL" do # ..existing gems gem 'neeto-approvals-engine' end
- And then execute:
bundle install
- Add this line to your application's
config/routes.rb
file:mount NeetoApprovalsEngine::Engine => "/neeto_approvals_engine"
- Run the following command to copy the migrations from the engine to the host application:
bundle exec rails neeto_approvals_engine:install:migrations
- Add the migrations to the database:
bundle exec rails db:migrate
Usage
You can learn more about the setup and usage here:
Frontend package
The package exports three components: Approvals
, Form
, and Public
.
Installation
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/[email protected] @bigbinary/[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] @tanstack/[email protected] @tanstack/[email protected] [email protected]
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
Pending
- Lists all pending approval requests.Templates
- Lists all approval templates.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 buttonisOpen
- Boolean value to open the panesetIsPaneOpen
- Set it to false to close the panerequestableId
- 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, isPending } = 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={isPending}
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.