feat: roll out illustrative empty states across 8 pages with 2 new guide entries
- TreeLibraryPage: split empty state into no-flows (illustration + CTA) vs no-filter-results - MyAnalyticsPage/TeamAnalyticsPage: add zero-sessions empty state with illustration - SessionHistoryPage: split into no-sessions (illustration) vs no-filter-results - StepLibraryBrowser: illustrative empty state when no steps exist - ScriptTemplateList: replace plain empty state with ScriptIllustration - MySharesPage: replace icon-based empty state with ShareIllustration - IntegrationsPage: add IntegrationIllustration above setup form - Add script-templates and psa-setup guides to guides data - Add EmptyState vitest tests (7 tests) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,8 @@ import {
|
||||
Wrench,
|
||||
Settings,
|
||||
BarChart3,
|
||||
Terminal,
|
||||
Plug,
|
||||
} from 'lucide-react'
|
||||
|
||||
export interface GuideStep {
|
||||
@@ -492,4 +494,82 @@ export const guides: Guide[] = [
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
slug: 'script-templates',
|
||||
title: 'Script Templates',
|
||||
icon: Terminal,
|
||||
summary: 'Browse, configure, and generate scripts from reusable templates.',
|
||||
sections: [
|
||||
{
|
||||
title: 'Browsing Templates',
|
||||
steps: [
|
||||
{ instruction: 'Click **Scripts** in the sidebar to open the Script Library.' },
|
||||
{ instruction: 'The left pane lists all available templates organized by category.' },
|
||||
{ instruction: 'Use the search bar to filter templates by name or keyword.' },
|
||||
{ instruction: 'Click any template to preview its script content in the right pane.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Configuring and Generating Scripts',
|
||||
steps: [
|
||||
{ instruction: 'Click **Configure** on a template to enter parameter values.' },
|
||||
{ instruction: 'Fill in the required fields (e.g., server name, IP address, credentials).' },
|
||||
{ instruction: 'Click **Generate** to produce a ready-to-run script with your values substituted.' },
|
||||
{ instruction: 'Copy the generated script to your clipboard or download it directly.', tip: 'Double-check generated scripts in a test environment before running them in production.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Managing Templates',
|
||||
steps: [
|
||||
{ instruction: 'Click **Manage Templates** at the top of the Script Library page.' },
|
||||
{ instruction: 'Create new templates with a name, category, script body, and configurable parameters.' },
|
||||
{ instruction: 'Edit or delete existing templates from the management page.' },
|
||||
{ instruction: 'Templates support PowerShell, Bash, Python, and other scripting languages.' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
slug: 'psa-setup',
|
||||
title: 'PSA Integration Setup',
|
||||
icon: Plug,
|
||||
summary: 'Connect ConnectWise or other PSA tools to ResolutionFlow.',
|
||||
sections: [
|
||||
{
|
||||
title: 'Getting Your API Credentials',
|
||||
steps: [
|
||||
{ instruction: 'Log in to your ConnectWise PSA instance as an admin.' },
|
||||
{ instruction: 'Navigate to **System > Members > API Members** and create a new API member.' },
|
||||
{ instruction: 'Generate an **API key pair** (public key and private key) for the member.' },
|
||||
{ instruction: 'Note your **Company ID** (the company identifier used to log in) and **Site URL** (e.g., na.myconnectwise.net).', tip: 'Create a dedicated API member for ResolutionFlow with minimal permissions for security.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Connecting in ResolutionFlow',
|
||||
steps: [
|
||||
{ instruction: 'Go to **Account > Integrations** in ResolutionFlow.' },
|
||||
{ instruction: 'Enter a display name, your Site URL, Company ID, Public Key, and Private Key.' },
|
||||
{ instruction: 'Click **Connect** to save the connection.' },
|
||||
{ instruction: 'Click **Test Connection** to verify everything is working correctly.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Member Mapping',
|
||||
steps: [
|
||||
{ instruction: 'After connecting, switch to the **Member Mapping** tab.' },
|
||||
{ instruction: 'Click **Auto-Match by Email** to automatically pair ResolutionFlow users with ConnectWise members by email address.' },
|
||||
{ instruction: 'Manually adjust any unmatched or incorrectly matched members using the dropdowns.' },
|
||||
{ instruction: 'Click **Save Mappings** to apply changes. Mapped members are used when posting session notes to tickets.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'What the Integration Enables',
|
||||
steps: [
|
||||
{ instruction: 'Session documentation can be posted directly to ConnectWise tickets as internal notes.' },
|
||||
{ instruction: 'Ticket context (client info, issue details) can be pulled into sessions for AI-assisted troubleshooting.' },
|
||||
{ instruction: 'Posts are attributed to the correct ConnectWise member based on your member mappings.' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user