Better error norifications
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import { isTokenValid, getUserInfo, revokeToken } from '$lib/google/auth/client.js';
|
||||
import type { GoogleSheet } from '$lib/google/sheets/types.ts';
|
||||
import { goto } from '$app/navigation';
|
||||
import { toast } from '$lib/stores/toast.js';
|
||||
|
||||
// Import Components
|
||||
import GoogleAuthStep from './components/GoogleAuthStep.svelte';
|
||||
@@ -259,23 +260,32 @@
|
||||
}
|
||||
|
||||
function validateCurrentStep(): boolean {
|
||||
// Clear previous errors
|
||||
errors = {};
|
||||
let isValid = true;
|
||||
|
||||
if (currentStep === 0) {
|
||||
if (!authData.isConnected) {
|
||||
toast.error('Please connect your Google account to continue');
|
||||
errors.auth = 'Please connect your Google account to continue';
|
||||
return false;
|
||||
}
|
||||
} else if (currentStep === 1) {
|
||||
if (!eventData.name.trim()) {
|
||||
toast.error('Event name is required');
|
||||
errors.name = 'Event name is required';
|
||||
isValid = false;
|
||||
}
|
||||
if (!eventData.date) {
|
||||
toast.error('Event date is required');
|
||||
errors.date = 'Event date is required';
|
||||
isValid = false;
|
||||
}
|
||||
} else if (currentStep === 2) {
|
||||
if (!sheetsData.selectedSheet) {
|
||||
toast.error('Please select a Google Sheet');
|
||||
errors.sheet = 'Please select a Google Sheet';
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
if (sheetsData.selectedSheet) {
|
||||
@@ -289,19 +299,26 @@
|
||||
if (!confirmation) missingColumns.push('Confirmation');
|
||||
|
||||
if (missingColumns.length > 0) {
|
||||
errors.sheetData = `Please map the following columns: ${missingColumns.join(', ')}`;
|
||||
const errorMsg = `Please map the following columns: ${missingColumns.join(', ')}`;
|
||||
toast.error(errorMsg);
|
||||
errors.sheetData = errorMsg;
|
||||
isValid = false;
|
||||
}
|
||||
}
|
||||
} else if (currentStep === 3) {
|
||||
if (!emailData.subject.trim()) {
|
||||
toast.error('Email subject is required');
|
||||
errors.subject = 'Email subject is required';
|
||||
isValid = false;
|
||||
}
|
||||
if (!emailData.body.trim()) {
|
||||
toast.error('Email body is required');
|
||||
errors.body = 'Email body is required';
|
||||
isValid = false;
|
||||
}
|
||||
}
|
||||
|
||||
return Object.keys(errors).length === 0;
|
||||
return isValid;
|
||||
}
|
||||
|
||||
// Google Sheets functions
|
||||
@@ -431,7 +448,7 @@
|
||||
}}
|
||||
/>
|
||||
{:else if currentStep === 1}
|
||||
<EventDetailsStep bind:eventData bind:errors />
|
||||
<EventDetailsStep bind:eventData />
|
||||
{:else if currentStep === 2}
|
||||
<GoogleSheetsStep bind:sheetsData bind:errors {loadRecentSheets} {selectSheet} {toggleSheetList} />
|
||||
{:else if currentStep === 3}
|
||||
|
||||
Reference in New Issue
Block a user