* Added loggin for the onboarding flow.

* Logging for potential errors

* feat: enhance onboarding error logging with server-side capture

* Update app/(onboarding)/onboarding/page.tsx

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
This commit is contained in:
Mattsson
2026-03-16 11:31:58 +01:00
committed by GitHub
co-authored by greptile-apps[bot]
parent 2b1331decb
commit c7672e538a
8 changed files with 340 additions and 153 deletions
+6 -2
View File
@@ -39,9 +39,13 @@ export default function Step1EntityType({ initialData, onNext, isSaving }: Step1
const [selected, setSelected] = useState<EntityType | undefined>(initialData.entity_type)
const handleNext = () => {
if (selected) {
onNext({ entity_type: selected })
if (!selected) {
const msg = 'step 1: fortsätt clicked without entity type selected'
console.error('[onboarding]', msg)
fetch('/api/log', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: msg }) }).catch(() => {})
return
}
onNext({ entity_type: selected })
}
return (
@@ -67,7 +67,11 @@ export default function Step2CompanyDetails({
</CardDescription>
</CardHeader>
<CardContent>
<form onSubmit={handleSubmit(onNext)} className="space-y-4">
<form onSubmit={handleSubmit(onNext, (errs) => {
const fields = Object.keys(errs).join(', ')
console.error('[onboarding] step 2 validation failed:', fields, errs)
fetch('/api/log', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: 'step 2 validation failed', extra: { fields } }) }).catch(() => {})
})} className="space-y-4">
<div className="space-y-2">
<Label htmlFor="company_name">
{isAB ? 'Företagsnamn' : 'Verksamhetsnamn (Eller ditt namn vid EF)'} *
@@ -271,7 +271,11 @@ export default function Step3TaxRegistration({
</CardDescription>
</CardHeader>
<CardContent>
<form onSubmit={handleSubmit(onSubmit)} className="space-y-6">
<form onSubmit={handleSubmit(onSubmit, (errs) => {
const fields = Object.keys(errs).join(', ')
console.error('[onboarding] step 3 validation failed:', fields, errs)
fetch('/api/log', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: 'step 3 validation failed', extra: { fields } }) }).catch(() => {})
})} className="space-y-6">
{/* F-skatt */}
<div className="flex items-start space-x-3">
<Controller
@@ -61,7 +61,11 @@ export default function Step4PreliminaryTax({
</CardDescription>
</CardHeader>
<CardContent>
<form onSubmit={handleSubmit(onSubmit)} className="space-y-6">
<form onSubmit={handleSubmit(onSubmit, (errs) => {
const fields = Object.keys(errs).join(', ')
console.error('[onboarding] step 4 validation failed:', fields, errs)
fetch('/api/log', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: 'step 4 validation failed', extra: { fields } }) }).catch(() => {})
})} className="space-y-6">
<div className="space-y-2">
<Label htmlFor="preliminary_tax_monthly">
Preliminärskatt per månad (kr)
+5 -1
View File
@@ -68,7 +68,11 @@ export default function Step6ConnectBank({
</CardDescription>
</CardHeader>
<CardContent>
<form onSubmit={handleSubmit(onManualSubmit)} className="space-y-4">
<form onSubmit={handleSubmit(onManualSubmit, (errs) => {
const fields = Object.keys(errs).join(', ')
console.error('[onboarding] step 5 validation failed:', fields, errs)
fetch('/api/log', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: 'step 5 validation failed', extra: { fields } }) }).catch(() => {})
})} className="space-y-4">
<div className="space-y-2">
<Label htmlFor="bank_name">Bank</Label>
<Input