diff --git a/src/api/mutations/extensions.ts b/src/api/mutations/extensions.ts index 140ab4c..8e21a01 100644 --- a/src/api/mutations/extensions.ts +++ b/src/api/mutations/extensions.ts @@ -41,6 +41,48 @@ export const UPDATE_SOURCE_PREFERENCE = ` } `; +export const SET_SOURCE_METAS = ` + mutation SetSourceMetas($input: SetSourceMetasInput!) { + setSourceMetas(input: $input) { + metas { sourceId key value } + } + } +`; + +export const DELETE_SOURCE_METAS = ` + mutation DeleteSourceMetas($input: DeleteSourceMetasInput!) { + deleteSourceMetas(input: $input) { + metas { sourceId key value } + } + } +`; + +export const UPDATE_SOURCE_METADATA = ` + mutation UpdateSourceMetadata( + $preUpdateDeleteInput: DeleteSourceMetasInput! + $hasPreUpdateDeletions: Boolean! + $updateInput: SetSourceMetasInput! + $hasUpdates: Boolean! + $postUpdateDeleteInput: DeleteSourceMetasInput! + $hasPostUpdateDeletions: Boolean! + $migrateInput: SetSourceMetasInput! + $isMigration: Boolean! + ) { + preUpdateDeletedMeta: deleteSourceMetas(input: $preUpdateDeleteInput) @include(if: $hasPreUpdateDeletions) { + metas { sourceId key value } + } + updatedMeta: setSourceMetas(input: $updateInput) @include(if: $hasUpdates) { + metas { sourceId key value } + } + postUpdateDeletedMeta: deleteSourceMetas(input: $postUpdateDeleteInput) @include(if: $hasPostUpdateDeletions) { + metas { sourceId key value } + } + migrationMeta: setSourceMetas(input: $migrateInput) @include(if: $isMigration) { + metas { sourceId key value } + } + } +`; + export const SET_SOURCE_META = ` mutation SetSourceMeta($sourceId: LongString!, $key: String!, $value: String!) { setSourceMeta(input: { meta: { sourceId: $sourceId, key: $key, value: $value } }) { diff --git a/src/api/queries/extensions.ts b/src/api/queries/extensions.ts index 9bb9664..446ec37 100644 --- a/src/api/queries/extensions.ts +++ b/src/api/queries/extensions.ts @@ -23,6 +23,77 @@ export const GET_SOURCES = ` nodes { id name lang displayName iconUrl isNsfw isConfigurable supportsLatest baseUrl + extension { pkgName } + } + } + } +`; + +export const GET_SOURCE_SETTINGS = ` + query GetSourceSettings($id: LongString!) { + source(id: $id) { + id + displayName + preferences { + ... on CheckBoxPreference { + type: __typename + CheckBoxTitle: title + CheckBoxSummary: summary + CheckBoxDefault: default + CheckBoxCurrentValue: currentValue + key + } + ... on SwitchPreference { + type: __typename + SwitchPreferenceTitle: title + SwitchPreferenceSummary: summary + SwitchPreferenceDefault: default + SwitchPreferenceCurrentValue: currentValue + key + } + ... on ListPreference { + type: __typename + ListPreferenceTitle: title + ListPreferenceSummary: summary + ListPreferenceDefault: default + ListPreferenceCurrentValue: currentValue + entries + entryValues + key + } + ... on EditTextPreference { + type: __typename + EditTextPreferenceTitle: title + EditTextPreferenceSummary: summary + EditTextPreferenceDefault: default + EditTextPreferenceCurrentValue: currentValue + dialogTitle + dialogMessage + key + } + ... on MultiSelectListPreference { + type: __typename + MultiSelectListPreferenceTitle: title + MultiSelectListPreferenceSummary: summary + MultiSelectListPreferenceDefault: default + MultiSelectListPreferenceCurrentValue: currentValue + entries + entryValues + key + } + } + } + } +`; + +export const GET_MIGRATABLE_SOURCES = ` + query GetMigratableSources { + mangas(condition: { inLibrary: true }) { + nodes { + sourceId + source { + id name lang displayName iconUrl isNsfw isConfigurable supportsLatest baseUrl + } } } } diff --git a/src/features/extensions/components/ExtensionCard.svelte b/src/features/extensions/components/ExtensionCard.svelte index fa60ee3..513d620 100644 --- a/src/features/extensions/components/ExtensionCard.svelte +++ b/src/features/extensions/components/ExtensionCard.svelte @@ -1,26 +1,38 @@
{detail.title}
+ {#if detail.body} +{detail.body}
+ {/if}
+