Redirect now directly to the event
This commit is contained in:
@@ -384,13 +384,26 @@
|
|||||||
sheetsData.expandedSheetList = !sheetsData.expandedSheetList;
|
sheetsData.expandedSheetList = !sheetsData.expandedSheetList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reset sheet selection and show sheet list
|
||||||
|
function resetSheetSelection() {
|
||||||
|
sheetsData.selectedSheet = null;
|
||||||
|
sheetsData.sheetData = [];
|
||||||
|
sheetsData.columnMapping = {
|
||||||
|
name: 0,
|
||||||
|
surname: 0,
|
||||||
|
email: 0,
|
||||||
|
confirmation: 0
|
||||||
|
};
|
||||||
|
sheetsData.expandedSheetList = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Final submission
|
// Final submission
|
||||||
async function createEvent() {
|
async function createEvent() {
|
||||||
if (!validateCurrentStep()) return;
|
if (!validateCurrentStep()) return;
|
||||||
|
|
||||||
loading = true;
|
loading = true;
|
||||||
try {
|
try {
|
||||||
const { error } = await data.supabase.rpc('create_event', {
|
const { data: newEvent, error } = await data.supabase.rpc('create_event', {
|
||||||
p_name: eventData.name,
|
p_name: eventData.name,
|
||||||
p_date: eventData.date,
|
p_date: eventData.date,
|
||||||
p_email_subject: emailData.subject,
|
p_email_subject: emailData.subject,
|
||||||
@@ -404,11 +417,19 @@
|
|||||||
|
|
||||||
if (error) throw error;
|
if (error) throw error;
|
||||||
|
|
||||||
// Redirect to events list or show success message
|
// Display success message
|
||||||
goto('/private/events');
|
toast.success(`Event "${eventData.name}" was created successfully`);
|
||||||
|
|
||||||
|
// Redirect to the event view page using the returned event ID
|
||||||
|
if (newEvent) {
|
||||||
|
goto(`/private/events/event/view?id=${newEvent.id}`);
|
||||||
|
} else {
|
||||||
|
// Fallback to events list if for some reason the event ID wasn't returned
|
||||||
|
goto('/private/events');
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error creating event:', error);
|
console.error('Error creating event:', error);
|
||||||
errors.submit = 'Failed to create event. Please try again.';
|
toast.error('Failed to create event. Please try again.');
|
||||||
} finally {
|
} finally {
|
||||||
loading = false;
|
loading = false;
|
||||||
}
|
}
|
||||||
@@ -453,6 +474,7 @@
|
|||||||
{loadRecentSheets}
|
{loadRecentSheets}
|
||||||
{selectSheet}
|
{selectSheet}
|
||||||
{toggleSheetList}
|
{toggleSheetList}
|
||||||
|
{resetSheetSelection}
|
||||||
/>
|
/>
|
||||||
{:else if currentStep === 3}
|
{:else if currentStep === 3}
|
||||||
<EmailSettingsStep bind:emailData />
|
<EmailSettingsStep bind:emailData />
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import type { GoogleSheet } from '$lib/google/sheets/types.ts';
|
import type { GoogleSheet } from '$lib/google/sheets/types.ts';
|
||||||
|
|
||||||
// Props
|
// Props
|
||||||
let { sheetsData = $bindable(), loadRecentSheets, selectSheet, toggleSheetList } = $props<{
|
let { sheetsData = $bindable(), loadRecentSheets, selectSheet, toggleSheetList, resetSheetSelection } = $props<{
|
||||||
sheetsData: {
|
sheetsData: {
|
||||||
availableSheets: GoogleSheet[];
|
availableSheets: GoogleSheet[];
|
||||||
selectedSheet: GoogleSheet | null;
|
selectedSheet: GoogleSheet | null;
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
loadRecentSheets: () => Promise<void>;
|
loadRecentSheets: () => Promise<void>;
|
||||||
selectSheet: (sheet: GoogleSheet) => Promise<void>;
|
selectSheet: (sheet: GoogleSheet) => Promise<void>;
|
||||||
toggleSheetList: () => void;
|
toggleSheetList: () => void;
|
||||||
|
resetSheetSelection: () => void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
// Search functionality
|
// Search functionality
|
||||||
@@ -123,13 +124,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
onclick={toggleSheetList}
|
onclick={resetSheetSelection}
|
||||||
class="text-blue-600 hover:text-blue-800 flex items-center"
|
class="text-blue-600 hover:text-blue-800 flex items-center"
|
||||||
aria-label="Show all sheets"
|
aria-label="Reset selection and show all sheets"
|
||||||
>
|
>
|
||||||
<span class="text-sm mr-1">Change</span>
|
<span class="text-sm mr-1">Change</span>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
|
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
|
||||||
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" />
|
<path fill-rule="evenodd" d="M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z" clip-rule="evenodd"/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
}>();
|
}>();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="mb-8">
|
<div class="mb-8 mt-6">
|
||||||
<div class="flex items-center justify-center gap-4 w-full">
|
<div class="flex items-center justify-center gap-4 w-full">
|
||||||
{#each Array(totalSteps) as _, index}
|
{#each Array(totalSteps) as _, index}
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user