refactor(agent): keep the assistant in the nav, FAB and underlag flow only (#1557)
The founder wants the scattered per-page assistant buttons gone: the assistant is reachable from the nav and the floating tab everywhere, so in-page duplicates were noise. Removed the AgentSparkleButton call sites (year-end, verifikat detail, supplier invoice detail, invoice editor) and the now-orphaned component, the soft hand-off link in the Ny verifikat modal (plus its i18n keys), and the transaction-row overflow item. Kept: nav entry, floating tab, the Dokumentinkorg flow, and the sanctioned "Skapa med assistent" split-button mode on /bookkeeping (design.md convention 14). The command palette's hand-off entries hardcoded the agent name "Anna"; they now use the identity from AgentSheetProvider like every other affordance, and hide until agent onboarding is done (same gate as the FAB). Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Jakob Wennberg
Claude Fable 5
parent
5453f11330
commit
1e9f245f7c
@@ -27,7 +27,6 @@ import StrikeLinesDialog from '@/components/bookkeeping/StrikeLinesDialog'
|
||||
import CorrectMetadataDialog from '@/components/bookkeeping/CorrectMetadataDialog'
|
||||
import EditDraftEntryDialog from '@/components/bookkeeping/EditDraftEntryDialog'
|
||||
import RecordateEntryDialog from '@/components/bookkeeping/RecordateEntryDialog'
|
||||
import AgentSparkleButton from '@/components/agent/AgentSparkleButton'
|
||||
import CorrectionChain from '@/components/bookkeeping/CorrectionChain'
|
||||
import RetagLineDialog, { type RetagLine } from '@/components/dimensions/RetagLineDialog'
|
||||
import { useCompanySettings } from '@/components/settings/useSettings'
|
||||
@@ -452,14 +451,6 @@ export default function JournalEntryDetailPage({ params }: { params: Promise<{ i
|
||||
|
||||
{(entry.status === 'posted' || entry.status === 'draft') && (
|
||||
<div className="flex flex-col sm:flex-row gap-2 w-full sm:w-auto">
|
||||
{entry.status === 'draft' && (
|
||||
<AgentSparkleButton
|
||||
intentId="verifikation.draft"
|
||||
intentArgs={{ journal_entry_id: id }}
|
||||
contextRef={`verifikation:${id}`}
|
||||
className="w-full sm:w-auto"
|
||||
/>
|
||||
)}
|
||||
{entry.status === 'draft' && (
|
||||
<Button
|
||||
variant="outline"
|
||||
|
||||
@@ -7,7 +7,6 @@ import { EmptyState } from '@/components/ui/empty-state'
|
||||
import { ContextPicker } from '@/components/common/ContextPicker'
|
||||
import { Skeleton } from '@/components/ui/skeleton'
|
||||
import { CalendarPlus, Check, Lock } from 'lucide-react'
|
||||
import AgentSparkleButton from '@/components/agent/AgentSparkleButton'
|
||||
import { cn } from '@/lib/utils'
|
||||
import { useToast } from '@/components/ui/use-toast'
|
||||
import { getErrorMessage } from '@/lib/errors/get-error-message'
|
||||
@@ -218,12 +217,6 @@ export default function YearEndPage() {
|
||||
<div className="flex items-center justify-between gap-3 flex-wrap">
|
||||
<h1 className="font-display text-2xl leading-8 tracking-tight">Årsbokslut</h1>
|
||||
<div className="flex items-center gap-2">
|
||||
<AgentSparkleButton
|
||||
intentId="bokslut.step"
|
||||
intentArgs={{ step_id: null }}
|
||||
contextRef="bokslut:overview"
|
||||
size="default"
|
||||
/>
|
||||
{showWizard && periods && periods.length > 0 && step !== 'result' && (
|
||||
<ContextPicker
|
||||
items={periods.map((p) => ({
|
||||
|
||||
@@ -14,7 +14,6 @@ import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs'
|
||||
import { useToast } from '@/components/ui/use-toast'
|
||||
import { getErrorMessage } from '@/lib/errors/get-error-message'
|
||||
import { ArrowLeft, CheckCircle, CreditCard, FileText, Trash2, Lock, Undo2, Info, Pencil, Plus, CalendarClock, Paperclip } from 'lucide-react'
|
||||
import AgentSparkleButton from '@/components/agent/AgentSparkleButton'
|
||||
import LinkVoucherPicker from '@/components/invoices/LinkVoucherPicker'
|
||||
import { useCanWrite } from '@/lib/hooks/use-can-write'
|
||||
import { formatDate, cn } from '@/lib/utils'
|
||||
@@ -526,12 +525,6 @@ export default function SupplierInvoiceDetailPage() {
|
||||
|
||||
{/* Actions */}
|
||||
<div className="flex flex-wrap gap-2">
|
||||
<AgentSparkleButton
|
||||
intentId="supplier_invoice.review"
|
||||
intentArgs={{ supplier_invoice_id: invoice.id }}
|
||||
contextRef={`supplier_invoice:${invoice.id}`}
|
||||
size="default"
|
||||
/>
|
||||
{/* Attest keys off approved_at, not the status: the overdue cron
|
||||
flips unbooked invoices to 'overdue' just by aging, and gating on
|
||||
'registered' alone left them with no way through attest (#1206). */}
|
||||
|
||||
Reference in New Issue
Block a user