npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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

  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/[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]
  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, 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.