From dc4db405d2991d3ec6a114f3b08d3fccd057d3ee Mon Sep 17 00:00:00 2001
From: Wolfgang Müller
Date: Thu, 13 Feb 2025 17:52:16 +0100
Subject: frontend: Migrate to Svelte 5
---
frontend/src/lib/forms/ArtistForm.svelte | 34 +++---
frontend/src/lib/forms/CharacterForm.svelte | 34 +++---
frontend/src/lib/forms/CircleForm.svelte | 34 +++---
frontend/src/lib/forms/ComicForm.svelte | 169 +++++++++++++++-------------
frontend/src/lib/forms/NamespaceForm.svelte | 39 ++++---
frontend/src/lib/forms/TagForm.svelte | 55 +++++----
frontend/src/lib/forms/WorldForm.svelte | 34 +++---
7 files changed, 216 insertions(+), 183 deletions(-)
(limited to 'frontend/src/lib/forms')
diff --git a/frontend/src/lib/forms/ArtistForm.svelte b/frontend/src/lib/forms/ArtistForm.svelte
index 7df5e8b..663c3ae 100644
--- a/frontend/src/lib/forms/ArtistForm.svelte
+++ b/frontend/src/lib/forms/ArtistForm.svelte
@@ -1,25 +1,29 @@
-
diff --git a/frontend/src/lib/forms/CharacterForm.svelte b/frontend/src/lib/forms/CharacterForm.svelte
index 4cec37c..23b3ef7 100644
--- a/frontend/src/lib/forms/CharacterForm.svelte
+++ b/frontend/src/lib/forms/CharacterForm.svelte
@@ -1,25 +1,29 @@
-
diff --git a/frontend/src/lib/forms/CircleForm.svelte b/frontend/src/lib/forms/CircleForm.svelte
index b71256c..ba6013a 100644
--- a/frontend/src/lib/forms/CircleForm.svelte
+++ b/frontend/src/lib/forms/CircleForm.svelte
@@ -1,25 +1,29 @@
-
diff --git a/frontend/src/lib/forms/ComicForm.svelte b/frontend/src/lib/forms/ComicForm.svelte
index 74051c8..adc6a34 100644
--- a/frontend/src/lib/forms/ComicForm.svelte
+++ b/frontend/src/lib/forms/ComicForm.svelte
@@ -3,98 +3,113 @@
import { type OmitIdentifiers } from '$gql/Utils';
import type { FullComicFragment, UpdateComicInput } from '$gql/graphql';
import { categories, censorships, directions, languages, layouts, ratings } from '$lib/Enums';
- import Labelled from '$lib/components/Labelled.svelte';
import LabelledBlock from '$lib/components/LabelledBlock.svelte';
import Select from '$lib/components/Select.svelte';
import { getContextClient } from '@urql/svelte';
- import { createEventDispatcher } from 'svelte';
+ import { type Snippet } from 'svelte';
const client = getContextClient();
- const dispatch = createEventDispatcher<{ submit: UpdateComicInput }>();
-
- export let comic: OmitIdentifiers;
-
- $: tagsQuery = comicTagList(client);
- $: artistsQuery = artistList(client);
- $: charactersQuery = characterList(client);
- $: circlesQuery = circleList(client);
- $: worldsQuery = worldList(client);
-
- $: tags = $tagsQuery.data?.comicTags.edges;
- $: artists = $artistsQuery.data?.artists.edges;
- $: characters = $charactersQuery.data?.characters.edges;
- $: circles = $circlesQuery.data?.circles.edges;
- $: worlds = $worldsQuery.data?.worlds.edges;
-
- function submit() {
- dispatch('submit', {
- direction: comic.direction,
- layout: comic.layout,
- rating: comic.rating,
- category: comic.category,
- censorship: comic.censorship,
- title: comic.title,
- originalTitle: comic.originalTitle,
- url: comic.url,
- date: comic.date === '' ? null : comic.date,
- language: comic.language,
- tags: { ids: comic.tags.map((t) => t.id) },
- artists: { ids: comic.artists.map((a) => a.id) },
- characters: { ids: comic.characters.map((c) => c.id) },
- circles: { ids: comic.circles.map((c) => c.id) },
- worlds: { ids: comic.worlds.map((w) => w.id) }
+
+ interface Props {
+ input: OmitIdentifiers;
+ submit: (input: UpdateComicInput) => void;
+ children?: Snippet;
+ }
+
+ let { input = $bindable(), submit, children }: Props = $props();
+
+ let tagsQuery = $derived(comicTagList(client));
+ let artistsQuery = $derived(artistList(client));
+ let charactersQuery = $derived(characterList(client));
+ let circlesQuery = $derived(circleList(client));
+ let worldsQuery = $derived(worldList(client));
+
+ let tags = $derived($tagsQuery.data?.comicTags.edges);
+ let artists = $derived($artistsQuery.data?.artists.edges);
+ let characters = $derived($charactersQuery.data?.characters.edges);
+ let circles = $derived($circlesQuery.data?.circles.edges);
+ let worlds = $derived($worldsQuery.data?.worlds.edges);
+
+ function onsubmit(event: SubmitEvent) {
+ event.preventDefault();
+
+ submit({
+ direction: input.direction,
+ layout: input.layout,
+ rating: input.rating,
+ category: input.category,
+ censorship: input.censorship,
+ title: input.title,
+ originalTitle: input.originalTitle,
+ url: input.url,
+ date: input.date === '' ? null : input.date,
+ language: input.language,
+ tags: { ids: input.tags.map((t) => t.id) },
+ artists: { ids: input.artists.map((a) => a.id) },
+ characters: { ids: input.characters.map((c) => c.id) },
+ circles: { ids: input.circles.map((c) => c.id) },
+ worlds: { ids: input.worlds.map((w) => w.id) }
});
}
-
diff --git a/frontend/src/lib/forms/NamespaceForm.svelte b/frontend/src/lib/forms/NamespaceForm.svelte
index c05b6d8..3631d84 100644
--- a/frontend/src/lib/forms/NamespaceForm.svelte
+++ b/frontend/src/lib/forms/NamespaceForm.svelte
@@ -1,28 +1,31 @@
-
diff --git a/frontend/src/lib/forms/TagForm.svelte b/frontend/src/lib/forms/TagForm.svelte
index 6cc2227..2789587 100644
--- a/frontend/src/lib/forms/TagForm.svelte
+++ b/frontend/src/lib/forms/TagForm.svelte
@@ -1,42 +1,41 @@
-
diff --git a/frontend/src/lib/forms/WorldForm.svelte b/frontend/src/lib/forms/WorldForm.svelte
index 103dd5b..e6b821f 100644
--- a/frontend/src/lib/forms/WorldForm.svelte
+++ b/frontend/src/lib/forms/WorldForm.svelte
@@ -1,25 +1,29 @@
-
--
cgit v1.2.3-2-gb3c3