Redirect now directly to the event

This commit is contained in:
Roman Krček
2025-07-14 14:56:49 +02:00
parent b9db3d22a3
commit 6466665549
3 changed files with 32 additions and 9 deletions

View File

@@ -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 />

View File

@@ -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>

View File

@@ -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">