feat(enterprise): add multi-PSA adapter stubs for Autotask and Halo PSA
- Create AutotaskProvider stub with all abstract methods raising NotImplementedError - Create HaloPSAProvider stub with all abstract methods raising NotImplementedError - Add PSA provider grid in IntegrationsPage showing ConnectWise (active), Autotask (Coming Soon), and Halo PSA (Coming Soon) with appropriate badges Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -259,6 +259,58 @@ export function IntegrationsPage() {
|
||||
{/* Connection Tab */}
|
||||
{activeTab === 'connection' && (
|
||||
<div className="max-w-3xl">
|
||||
{/* PSA Provider Grid */}
|
||||
<div className="mb-6">
|
||||
<p className="font-label text-[0.625rem] uppercase tracking-[0.1em] text-muted-foreground mb-3">
|
||||
Available PSA Integrations
|
||||
</p>
|
||||
<div className="grid grid-cols-1 gap-3 sm:grid-cols-3">
|
||||
{/* ConnectWise — active */}
|
||||
<div className={cn(
|
||||
'rounded-xl border p-4 flex flex-col gap-2',
|
||||
connection
|
||||
? 'border-primary/40 bg-primary/5'
|
||||
: 'border-border bg-card/30'
|
||||
)}>
|
||||
<div className="flex items-center justify-between">
|
||||
<span className="text-sm font-medium text-foreground">ConnectWise PSA</span>
|
||||
{connection ? (
|
||||
<span className="inline-flex items-center rounded-full bg-emerald-400/10 px-2 py-0.5 text-[0.625rem] font-label text-emerald-400">
|
||||
Connected
|
||||
</span>
|
||||
) : (
|
||||
<span className="inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[0.625rem] font-label text-primary">
|
||||
Available
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<p className="text-xs text-muted-foreground">Manage, ticket linking, time entries</p>
|
||||
</div>
|
||||
|
||||
{/* Autotask — coming soon */}
|
||||
<div className="rounded-xl border border-border bg-card/20 p-4 flex flex-col gap-2 opacity-60 cursor-not-allowed select-none">
|
||||
<div className="flex items-center justify-between">
|
||||
<span className="text-sm font-medium text-foreground">Autotask PSA</span>
|
||||
<span className="inline-flex items-center rounded-full bg-amber-400/10 px-2 py-0.5 text-[0.625rem] font-label text-amber-400">
|
||||
Coming Soon
|
||||
</span>
|
||||
</div>
|
||||
<p className="text-xs text-muted-foreground">Datto / Kaseya integration</p>
|
||||
</div>
|
||||
|
||||
{/* Halo PSA — coming soon */}
|
||||
<div className="rounded-xl border border-border bg-card/20 p-4 flex flex-col gap-2 opacity-60 cursor-not-allowed select-none">
|
||||
<div className="flex items-center justify-between">
|
||||
<span className="text-sm font-medium text-foreground">Halo PSA</span>
|
||||
<span className="inline-flex items-center rounded-full bg-amber-400/10 px-2 py-0.5 text-[0.625rem] font-label text-amber-400">
|
||||
Coming Soon
|
||||
</span>
|
||||
</div>
|
||||
<p className="text-xs text-muted-foreground">HaloPSA / HaloITSM integration</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Illustrative empty state when no connection exists */}
|
||||
{mode === 'setup' && (
|
||||
<div className="mb-6">
|
||||
|
||||
Reference in New Issue
Block a user