improve reliability
This commit is contained in:
parent
8eb7fdd90f
commit
da6f5a3cfc
1 changed files with 21 additions and 30 deletions
|
@ -2122,7 +2122,6 @@ declare global {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
const form = e.target as HTMLFormElement;
|
const form = e.target as HTMLFormElement;
|
||||||
// Get the submit and cancel buttons from the modal-action div
|
|
||||||
const modalAction = document.querySelector(".modal-action");
|
const modalAction = document.querySelector(".modal-action");
|
||||||
const submitButton = modalAction?.querySelector(
|
const submitButton = modalAction?.querySelector(
|
||||||
".btn-primary"
|
".btn-primary"
|
||||||
|
@ -2136,8 +2135,17 @@ declare global {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store original button content
|
||||||
const originalText = submitButton.innerHTML;
|
const originalText = submitButton.innerHTML;
|
||||||
|
|
||||||
|
// Immediately disable buttons and show loading state
|
||||||
|
submitButton.disabled = true;
|
||||||
|
cancelButton.disabled = true;
|
||||||
|
submitButton.innerHTML = `
|
||||||
|
<span class="loading loading-spinner loading-sm"></span>
|
||||||
|
Saving...
|
||||||
|
`;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const formData = new FormData(form);
|
const formData = new FormData(form);
|
||||||
const eventId = (
|
const eventId = (
|
||||||
|
@ -2147,15 +2155,6 @@ declare global {
|
||||||
// Get files from storage
|
// Get files from storage
|
||||||
const selectedFiles = Array.from(selectedFileStorage.values());
|
const selectedFiles = Array.from(selectedFileStorage.values());
|
||||||
|
|
||||||
// Disable buttons and show loading state
|
|
||||||
submitButton.disabled = true;
|
|
||||||
cancelButton.disabled = true;
|
|
||||||
submitButton.innerHTML = `
|
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
<span class="loading loading-spinner loading-sm"></span>
|
|
||||||
<span>Saving...</span>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
window.showLoading?.();
|
window.showLoading?.();
|
||||||
|
|
||||||
// Prepare event data
|
// Prepare event data
|
||||||
|
@ -2181,10 +2180,8 @@ declare global {
|
||||||
if (eventId) {
|
if (eventId) {
|
||||||
// Update existing event
|
// Update existing event
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
<span class="loading loading-spinner loading-sm"></span>
|
<span class="loading loading-spinner loading-sm"></span>
|
||||||
<span>Updating event...</span>
|
Updating event...
|
||||||
</div>
|
|
||||||
`;
|
`;
|
||||||
updatedEvent = await update.updateFields(
|
updatedEvent = await update.updateFields(
|
||||||
"events",
|
"events",
|
||||||
|
@ -2195,10 +2192,8 @@ declare global {
|
||||||
// Handle file uploads if any
|
// Handle file uploads if any
|
||||||
if (selectedFiles.length > 0) {
|
if (selectedFiles.length > 0) {
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
<span class="loading loading-spinner loading-sm"></span>
|
<span class="loading loading-spinner loading-sm"></span>
|
||||||
<span>Uploading files (0/${selectedFiles.length})...</span>
|
Uploading files (0/${selectedFiles.length})...
|
||||||
</div>
|
|
||||||
`;
|
`;
|
||||||
await fileManager.appendFiles(
|
await fileManager.appendFiles(
|
||||||
"events",
|
"events",
|
||||||
|
@ -2216,10 +2211,8 @@ declare global {
|
||||||
} else {
|
} else {
|
||||||
// Create new event
|
// Create new event
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
<span class="loading loading-spinner loading-sm"></span>
|
<span class="loading loading-spinner loading-sm"></span>
|
||||||
<span>Creating event...</span>
|
Creating event...
|
||||||
</div>
|
|
||||||
`;
|
`;
|
||||||
const pb = auth.getPocketBase();
|
const pb = auth.getPocketBase();
|
||||||
const newEvent = await pb
|
const newEvent = await pb
|
||||||
|
@ -2229,10 +2222,8 @@ declare global {
|
||||||
// Handle file uploads if any
|
// Handle file uploads if any
|
||||||
if (selectedFiles.length > 0) {
|
if (selectedFiles.length > 0) {
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
<span class="loading loading-spinner loading-sm"></span>
|
<span class="loading loading-spinner loading-sm"></span>
|
||||||
<span>Uploading files (0/${selectedFiles.length})...</span>
|
Uploading files (0/${selectedFiles.length})...
|
||||||
</div>
|
|
||||||
`;
|
`;
|
||||||
await fileManager.uploadFiles(
|
await fileManager.uploadFiles(
|
||||||
"events",
|
"events",
|
||||||
|
|
Loading…
Reference in a new issue