diff --git a/src/components/HTMLPreview.svelte b/src/components/HTMLPreview.svelte
index ee0fcda38..d975d53d5 100644
--- a/src/components/HTMLPreview.svelte
+++ b/src/components/HTMLPreview.svelte
@@ -15,14 +15,51 @@
{ name: 'logo', type: 'image', value: data.logo },
{ name: 'name', type: 'string', value: data.name },
{ name: 'native_name', type: 'string', value: data.native_name },
- { name: 'network', type: 'link', value: data.network },
- { name: 'country', type: 'link', value: data.country.name },
- { name: 'subdivision', type: 'link', value: data.subdivision ? data.subdivision.name : null },
- { name: 'city', type: 'link', value: data.city },
- { name: 'broadcast_area', type: 'link[]', value: data.broadcast_area.map(v => v.name) },
- { name: 'languages', type: 'link[]', value: data.languages.map(v => v.name) },
- { name: 'categories', type: 'link[]', value: data.categories.map(v => v.name) },
- { name: 'is_nsfw', type: 'link', value: data.is_nsfw.toString() },
+ {
+ name: 'network',
+ type: 'link',
+ value: data.network ? { label: data.network, query: `network:${norm(data.network)}` } : null
+ },
+ {
+ name: 'country',
+ type: 'link',
+ value: { label: data._country.name, query: `country:${data._country.code}` }
+ },
+ {
+ name: 'subdivision',
+ type: 'link',
+ value: data._subdivision
+ ? { label: data._subdivision.name, query: `subdivision:${data._subdivision.code}` }
+ : null
+ },
+ {
+ name: 'city',
+ type: 'link',
+ value: data.city ? { label: data.city, query: `city:${norm(data.city)}` } : null
+ },
+ {
+ name: 'broadcast_area',
+ type: 'link[]',
+ value: data._broadcast_area.map(v => ({
+ label: v.name,
+ query: `broadcast_area:${v.type}/${v.code}`
+ }))
+ },
+ {
+ name: 'languages',
+ type: 'link[]',
+ value: data._languages.map(v => ({ label: v.name, query: `languages:${v.code}` }))
+ },
+ {
+ name: 'categories',
+ type: 'link[]',
+ value: data._categories.map(v => ({ label: v.name, query: `categories:${v.id}` }))
+ },
+ {
+ name: 'is_nsfw',
+ type: 'link',
+ value: { label: data.is_nsfw.toString(), query: `is_nsfw:${data.is_nsfw.toString()}` }
+ },
{
name: 'launched',
type: 'date',
@@ -37,10 +74,12 @@
{ name: 'website', type: 'external_link', value: data.website }
].filter(f => (Array.isArray(f.value) ? f.value.length : f.value))
- function searchBy(name, value) {
- value = value.includes(' ') ? `"${value}"` : value
- const q = `${name}:${value}`
- if($query !== q) {
+ function norm(value) {
+ return value.includes(' ') ? `"${value}"` : value
+ }
+
+ function searchBy(q) {
+ if ($query !== q) {
query.set(q)
hasQuery.set(true)
search(q)
@@ -71,29 +110,22 @@
referrerpolicy="no-referrer"
class="border rounded-sm overflow-hidden border-gray-200 bg-[#e6e6e6]"
/>
- {:else if field.type === 'channel'}
-
{:else if field.type === 'link'}
{:else if field.type === 'link[]'} {#each field.value as value, i} {#if i > 0},
{/if}
{/each} {:else if field.type === 'external_link'}