@resulticks/trustsignal-wa-hsm
v0.25.0
Published
This package exposes two React components that you can drop into your app:
Readme
TrustSignal WebSDK (Library)
This package exposes two React components that you can drop into your app:
Dashboard: list and entry pointCreateTemplate: the template builder screenTrustSignalProvider: wraps your app and provides the API key/config
The library ships its own compiled styles, so you only need to import the CSS once.
Installation
npm i @resulticks/trustsignal react react-domreact and react-dom are peer dependencies and must be installed in the host app.
Quick Start (State-Based Toggling - No Routing Required)
The components can be toggled using React state without requiring any routing library. Simply manage the view state and pass callbacks to handle navigation between components.
import { useState } from "react";
import { TrustSignalProvider, Dashboard, CreateTemplate } from "@resulticks/trustsignal-wa-hsm";
import "@resulticks/trustsignal-wa-hsm/style.css";
type View = 'dashboard' | 'create' | 'edit';
export default function App() {
const [currentView, setCurrentView] = useState<View>('dashboard');
const [editId, setEditId] = useState<string | null>(null);
const handleCreateTemplate = () => {
setEditId(null);
setCurrentView('create');
};
const handleEditTemplate = (id: string) => {
setEditId(id);
setCurrentView('edit');
};
const handleBackToDashboard = () => {
setCurrentView('dashboard');
setEditId(null);
};
return (
<TrustSignalProvider
apiKey="YOUR_API_KEY"
pConfig={{
baseUrl: process.env.RESUL_BASE_URL,
departmentId: Number(process.env.RESUL_DEPARTMENT_ID),
clientId: Number(process.env.RESUL_CLIENT_ID),
createdBy: Number(process.env.RESUL_CREATED_BY),
userId: Number(process.env.RESUL_USER_ID),
}}
>
{currentView === 'dashboard' ? (
<Dashboard
onCreateTemplate={handleCreateTemplate}
onEditTemplate={handleEditTemplate}
/>
) : (
<CreateTemplate
editId={editId || undefined}
onCancel={handleBackToDashboard}
/>
)}
</TrustSignalProvider>
);
}Component Props
Dashboard
onCreateTemplate?: () => void- Callback when user clicks to create a new templateonEditTemplate?: (id: string) => void- Callback when user clicks to edit a template (receives template ID)
CreateTemplate
editId?: string- Optional template ID to edit. If provided, the component will load and edit that template.onCancel?: () => void- Callback when user clicks the Back button to return to dashboard
Notes
- Import the stylesheet once:
import "@resulticks/trustsignal/style.css"; - The provider writes the
apiKey(and optionalpConfigmetadata) tolocalStorage('account')so all API calls work without additional wiring. - Pass
pConfigif you need to override meta identifiers (departmentId,clientId,createdBy,userId) and/orbaseUrlfor the Resul API submission; updates propagate automatically. - Consider sourcing
pConfigvalues from env variables (as in the example) to simplify environment-specific deployments. - No routing required: The components work with simple state toggling, making integration easier without needing react-router-dom.
Local Development / Building the Library (inside this repo)
# Build the library bundles to dist/
npm run build:lib
# (optional) link into another project while developing
# in this repo
npm pack # or use a local link strategy
# then in your host project
npm i ../path/to/@resulticks/trustsignal-*.tgzThe library exports:
import { TrustSignalProvider, Dashboard, CreateTemplate } from "@resulticks/trustsignal";CSS is automatically included via the package metadata, but you can also explicitly import it early in your app entry to ensure styles load before first paint:
import "@resulticks/trustsignal/style.css";That's it—drop in Dashboard and toggle to CreateTemplate when the user clicks create. No routing library needed!
