From b6fcfc2c082c2bbeb49da1f8e7532dd29fb77da8 Mon Sep 17 00:00:00 2001 From: Eva Decker Date: Wed, 22 Nov 2023 19:58:44 -0500 Subject: [PATCH] fix: Prevent pasting newlines into description input (#136) --- src/routes/new/+page.svelte | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/routes/new/+page.svelte b/src/routes/new/+page.svelte index db42ae9..bc36292 100644 --- a/src/routes/new/+page.svelte +++ b/src/routes/new/+page.svelte @@ -12,6 +12,7 @@ import { browser } from '$app/environment'; import { page } from '$app/stores'; import LoaderIcon from '~icons/ri/loader-4-line'; + import type { FormEventHandler } from 'svelte/elements'; export let data: PageData; @@ -23,23 +24,18 @@ $form.contributor = browser ? window.localStorage.getItem('contributor') ?? '' : ''; - const handleDescriptionKeyDown = (event: KeyboardEvent) => { - // Prevent newlines - if (event.key === 'Enter') { - event.preventDefault(); - } + const handleDescriptionInput: FormEventHandler = (e) => { + $form.description = e.currentTarget.value; + // Replace any newlines with spaces and trim + $form.description = $form.description.replace(/\r?\n|\r/g, ' ').trim(); - // Prevent leading spaces - if ($form.description.length === 0 && event.key === ' ') { - event.preventDefault(); - } + $form.description = $form.description; }; - const handleContributorKeyDown = (event: KeyboardEvent) => { - // Prevent leading spaces - if ($form.contributor.length === 0 && event.key === ' ') { - event.preventDefault(); - } + const handleContributorInput: FormEventHandler = (e) => { + $form.contributor = e.currentTarget.value; + // Trim spaces + $form.contributor = $form.contributor.trim(); }; const handleSubmit = () => { @@ -79,7 +75,7 @@ Description optional