improve reliability

This commit is contained in:
chark1es 2025-02-13 05:32:00 -08:00
parent 8eb7fdd90f
commit da6f5a3cfc

View file

@ -2122,7 +2122,6 @@ declare global {
e.preventDefault();
const form = e.target as HTMLFormElement;
// Get the submit and cancel buttons from the modal-action div
const modalAction = document.querySelector(".modal-action");
const submitButton = modalAction?.querySelector(
".btn-primary"
@ -2136,8 +2135,17 @@ declare global {
return;
}
// Store original button content
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 {
const formData = new FormData(form);
const eventId = (
@ -2147,15 +2155,6 @@ declare global {
// Get files from storage
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?.();
// Prepare event data
@ -2181,10 +2180,8 @@ declare global {
if (eventId) {
// Update existing event
submitButton.innerHTML = `
<div class="flex items-center gap-2">
<span class="loading loading-spinner loading-sm"></span>
<span>Updating event...</span>
</div>
Updating event...
`;
updatedEvent = await update.updateFields(
"events",
@ -2195,10 +2192,8 @@ declare global {
// Handle file uploads if any
if (selectedFiles.length > 0) {
submitButton.innerHTML = `
<div class="flex items-center gap-2">
<span class="loading loading-spinner loading-sm"></span>
<span>Uploading files (0/${selectedFiles.length})...</span>
</div>
Uploading files (0/${selectedFiles.length})...
`;
await fileManager.appendFiles(
"events",
@ -2216,10 +2211,8 @@ declare global {
} else {
// Create new event
submitButton.innerHTML = `
<div class="flex items-center gap-2">
<span class="loading loading-spinner loading-sm"></span>
<span>Creating event...</span>
</div>
Creating event...
`;
const pb = auth.getPocketBase();
const newEvent = await pb
@ -2229,10 +2222,8 @@ declare global {
// Handle file uploads if any
if (selectedFiles.length > 0) {
submitButton.innerHTML = `
<div class="flex items-center gap-2">
<span class="loading loading-spinner loading-sm"></span>
<span>Uploading files (0/${selectedFiles.length})...</span>
</div>
Uploading files (0/${selectedFiles.length})...
`;
await fileManager.uploadFiles(
"events",