diff --git a/app/frontend/javascript/controllers/share_url_controller.js b/app/frontend/javascript/controllers/share_url_controller.js index b5710dc18..457ff249b 100644 --- a/app/frontend/javascript/controllers/share_url_controller.js +++ b/app/frontend/javascript/controllers/share_url_controller.js @@ -10,11 +10,21 @@ export default class extends Controller { // Build URL from form data const form = this.element; - const params = new URLSearchParams(new FormData(form)).toString(); - const shareUrl = `${form.action}?${params}`; + const formData = new FormData(form); + const params = new URLSearchParams(); + + // Manually add each form field to URLSearchParams for Safari compatibility + for (const [key, value] of formData.entries()) { + // Include all values except empty strings to keep URLs clean + if (value !== '') { + params.append(key, value); + } + } + + const shareUrl = `${form.action}?${params.toString()}`; this.outputTarget.value = shareUrl; - this.outputTarget.classList.remove("hidden") + this.outputTarget.classList.remove("hidden"); navigator.clipboard.writeText(shareUrl).then(() => { alert("Search URL copied to clipboard!");