Installation

Ensure the library is included in your project by running:
npm install @accelbooks-react/accelbooks-react

Components Overview

AccelProvider

AccelProvider is crucial as it wraps your application and provides configuration for all child components.
Warning: Without valid keys (companyId, enterpriseId, and enterpriseSecret), the package will throw errors. If you need to obtain these keys or have any issues, please reach out to the AccelBooks team at info@accelbooks.com for assistance.

Usage

import { AccelProvider } from "@accelbooks-react/accelbooks-react";

function App() {
  return (
    <AccelProvider
      companyId="your-company-id"
      enterpriseId="your-enterprise-id"
      enterpriseSecret="your-enterprise-secret"
      environment="development"
      theme={yourThemeObject}
      apiUrl="your-api-url"
    >
      {/* Child components here */}
    </AccelProvider>
  );
}

Key Components

  • AccelView: Integrates multiple financial views. AccelView
    import { AccelView } from "@accelbooks-react/accelbooks-react";
    
    function MyAccelView() {
      return <AccelView />;
    }
    
  • Other Components: Including TransactionsView, SettingsView, LedgerView, and ReportView.
    • TransactionsView TransactionsView
      import { TransactionsView } from "@accelbooks-react/accelbooks-react";
      
      function MyTransactionsView() {
        return <TransactionsView />;
      }
      
    • SettingsView SettingsView
      import { SettingsView } from "@accelbooks-react/accelbooks-react";
      
      function MySettingsView() {
        return <SettingsView />;
      }
      
    • LedgerView LedgerView
      import { LedgerView } from "@accelbooks-react/accelbooks-react";
      
      function MyLedgerView() {
        return <LedgerView />;
      }
      
    • ReportView AI Reports Balance
      import { ReportView } from "@accelbooks-react/accelbooks-react";
      
      function MyReportView() {
        return <ReportView />;
      }
      

Theming and Customization

Customize component appearances using the theme prop.

Defining a Theme

const myTheme = {
  primaryColor: "#0052cc",
  secondaryColor: "#edf2f7",
  accentColor: "#f0b429",
};

Applying the Theme

<AccelProvider theme={myTheme} apiUrl="your-api-url">
  {/* Components here */}
</AccelProvider>

Using with Next.js

Integrate components within Next.js projects, focusing on client-side rendering techniques.

Dynamic Imports for SSR

import dynamic from "next/dynamic";

const DynamicAccelView = dynamic(
  () =>
    import("@accelbooks-react/accelbooks-react").then((mod) => mod.AccelView),
  { ssr: false }
);

function MyPage() {
  return <DynamicAccelView />;
}

Client-Side Rendering Using useEffect

import React, { useEffect, useState } from "react";
import { Dashboard } from "@accelbooks-react/accelbooks-react";

function ClientOnlyDashboard() {
  const [isClient, setIsClient] = useState(false);

  useEffect(() => {
    setIsClient(true);
  }, []);

  return isClient ? <Dashboard /> : <div>Loading...</div>;
}