diff --git a/src/routes/backoffice/account/+page.svelte b/src/routes/backoffice/account/+page.svelte index 025b310..916783f 100644 --- a/src/routes/backoffice/account/+page.svelte +++ b/src/routes/backoffice/account/+page.svelte @@ -211,9 +211,22 @@ if (selectedFile) { // Upload file to Supabase Storage + const oldFilePath = newUser.profile_picture + ? newUser.profile_picture.split("/").pop() + : null; + if (oldFilePath) { + await supabase.storage + .from("villabugis") + .remove([`profile_pictures/${oldFilePath}`]); + } + + const fileName = selectedFile.name; + const fileExtension = fileName.split(".").pop(); + const randomFileName = `${crypto.randomUUID()}.${fileExtension}`; + const { data, error } = await supabase.storage .from("villabugis") - .upload(`profile_pictures/${selectedFile.name}`, selectedFile); + .upload(`profile_pictures/${randomFileName}`, selectedFile); if (error) { console.error("Error uploading file:", error); diff --git a/src/routes/backoffice/issue/+page.svelte b/src/routes/backoffice/issue/+page.svelte index cc63b52..5bc7d9f 100644 --- a/src/routes/backoffice/issue/+page.svelte +++ b/src/routes/backoffice/issue/+page.svelte @@ -340,12 +340,26 @@ //upload image if selected if (selectedFile) { + //delete previous image + const oldFilePath = newIssue.issue_related_image + ? newIssue.issue_related_image.split("/").pop() + : null; + if (oldFilePath) { + const { error: deleteError } = await supabase.storage + .from("villabugis") + .remove([`issues/${oldFilePath}`]); + if (deleteError) { + console.error("Error deleting old image:", deleteError); + } + } + + const fileName = selectedFile.name; + const fileExtension = fileName.split(".").pop(); + const randomFileName = `${crypto.randomUUID()}.${fileExtension}`; + const { data, error } = await supabase.storage .from("villabugis") - .upload( - `issues/${Date.now()}_${selectedFile.name}`, - selectedFile, - ); + .upload(`issues/${randomFileName}`, selectedFile); console.log("Image upload data:", data); @@ -389,7 +403,9 @@ "description_of_the_issue", ) as string, reported_date: formData.get("reported_date") as string, - issue_related_image: imagePreviewUrl || "", + issue_related_image: newIssue.issue_related_image + ? newIssue.issue_related_image + : (formData.get("issue_related_image") as string), issue_source: formData.get("issue_source") as string, reported_by: formData.get("reported_by") as string, input_by: formData.get("input_by") as string, @@ -419,6 +435,11 @@ await fetchIssues(); showModal = false; + + //clear form data + newIssue = {}; + + selectedFile = null; } // function get public URL for image supabase @@ -1165,7 +1186,12 @@