fix: add missing each-block keys (svelte/require-each-key)
Fixed all 27 remaining instances across 19 files. Keys used: - Object ID fields where available (e.g. account_id_random, event_file_id) - index for logger lists with no reliable unique key - Property name for Object.entries() loops
This commit is contained in:
@@ -221,7 +221,7 @@
|
|||||||
{ key: 'novi_trusted_li', label: 'Novi Trusted', color: 'text-warning-500' },
|
{ key: 'novi_trusted_li', label: 'Novi Trusted', color: 'text-warning-500' },
|
||||||
{ key: 'novi_jitsi_mod_li', label: 'Jitsi Moderators', color: 'text-primary-500' },
|
{ key: 'novi_jitsi_mod_li', label: 'Jitsi Moderators', color: 'text-primary-500' },
|
||||||
{ key: 'novi_idaa_group_guid_li', label: 'Member Group GUIDs', color: 'text-secondary-500' }
|
{ key: 'novi_idaa_group_guid_li', label: 'Member Group GUIDs', color: 'text-secondary-500' }
|
||||||
] as list}
|
] as list (list.key)}
|
||||||
<div class="space-y-2 p-3 bg-surface-500/5 rounded-lg">
|
<div class="space-y-2 p-3 bg-surface-500/5 rounded-lg">
|
||||||
<header class="flex justify-between items-center">
|
<header class="flex justify-between items-center">
|
||||||
<span class="text-[10px] font-black uppercase tracking-wider {list.color}">{list.label}</span>
|
<span class="text-[10px] font-black uppercase tracking-wider {list.color}">{list.label}</span>
|
||||||
|
|||||||
@@ -415,7 +415,7 @@
|
|||||||
<th>Hash</th>
|
<th>Hash</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{#each input_file_list_processed as file_list_item, file_index}
|
{#each input_file_list_processed as file_list_item, file_index (file_index)}
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="file_remove">
|
<td class="file_remove">
|
||||||
|
|||||||
@@ -355,7 +355,7 @@
|
|||||||
<th>Hash</th>
|
<th>Hash</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
{#each processed_file_list as file_list_item, file_index}
|
{#each processed_file_list as file_list_item, file_index (file_index)}
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="file_remove">
|
<td class="file_remove">
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
<ol class="list-decimal list-inside">
|
<ol class="list-decimal list-inside">
|
||||||
{#each [...$lq__hosted_file_obj_li]
|
{#each [...$lq__hosted_file_obj_li]
|
||||||
.reverse()
|
.reverse()
|
||||||
.slice(0, max_file_count) as hosted_file_obj}
|
.slice(0, max_file_count) as hosted_file_obj (hosted_file_obj.hosted_file_id)}
|
||||||
<li>
|
<li>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
{#if obj != null && typeof obj == 'object'}
|
{#if obj != null && typeof obj == 'object'}
|
||||||
{#each Object.entries(obj) as [obj_prop_name, obj_prop_value]}
|
{#each Object.entries(obj) as [obj_prop_name, obj_prop_value] (obj_prop_name)}
|
||||||
<!-- NEED TO ADD A CHECK IF:
|
<!-- NEED TO ADD A CHECK IF:
|
||||||
NOTE and WARNING:
|
NOTE and WARNING:
|
||||||
|
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
{#each filtered_li as acct}
|
{#each filtered_li as acct (acct.account_id_random)}
|
||||||
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
||||||
<div class="absolute top-4 right-4 flex gap-1">
|
<div class="absolute top-4 right-4 flex gap-1">
|
||||||
{#if acct.hide}
|
{#if acct.hide}
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each log_li as log}
|
{#each log_li as log, index (index)}
|
||||||
<tr class="transition-colors text-sm">
|
<tr class="transition-colors text-sm">
|
||||||
<!-- Date/Time -->
|
<!-- Date/Time -->
|
||||||
<td class="whitespace-nowrap">
|
<td class="whitespace-nowrap">
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
{#each filtered_li as addr}
|
{#each filtered_li as addr (addr.address_id_random)}
|
||||||
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
||||||
<div class="absolute top-4 right-4">
|
<div class="absolute top-4 right-4">
|
||||||
<span class="badge {addr.enable ? 'variant-filled-success' : 'variant-filled-error'} text-[8px] uppercase font-bold shadow-sm">
|
<span class="badge {addr.enable ? 'variant-filled-success' : 'variant-filled-error'} text-[8px] uppercase font-bold shadow-sm">
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each $lq_kv__person_obj_li as person_obj}
|
{#each $lq_kv__person_obj_li as person_obj (person_obj.person_id_random)}
|
||||||
<tr class:dim={person_obj?.hide}>
|
<tr class:dim={person_obj?.hide}>
|
||||||
<td class="px-4 py-2">
|
<td class="px-4 py-2">
|
||||||
<span class="fas fa-user"></span>
|
<span class="fas fa-user"></span>
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
{#each filtered_li as con}
|
{#each filtered_li as con (con.contact_id_random)}
|
||||||
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
||||||
<div class="absolute top-4 right-4">
|
<div class="absolute top-4 right-4">
|
||||||
<span class="badge {con.enable ? 'variant-filled-success' : 'variant-filled-error'} text-[8px] uppercase font-bold shadow-sm">
|
<span class="badge {con.enable ? 'variant-filled-success' : 'variant-filled-error'} text-[8px] uppercase font-bold shadow-sm">
|
||||||
|
|||||||
@@ -101,7 +101,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each lookups.countries as c}
|
{#each lookups.countries as c (c.alpha_2_code)}
|
||||||
<tr class="transition-colors">
|
<tr class="transition-colors">
|
||||||
<td class="font-bold">{c.name || c.english_short_name}</td>
|
<td class="font-bold">{c.name || c.english_short_name}</td>
|
||||||
<td class="text-center"><span class="badge variant-soft-surface font-mono text-primary-500">{c.alpha_2_code}</span></td>
|
<td class="text-center"><span class="badge variant-soft-surface font-mono text-primary-500">{c.alpha_2_code}</span></td>
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each lookups.subdivisions as s}
|
{#each lookups.subdivisions as s, i (i)}
|
||||||
<tr class="transition-colors">
|
<tr class="transition-colors">
|
||||||
<td class="opacity-60">{s.country_alpha_2_code}</td>
|
<td class="opacity-60">{s.country_alpha_2_code}</td>
|
||||||
<td class="font-bold">{s.name}</td>
|
<td class="font-bold">{s.name}</td>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{#each lookups.time_zones as tz}
|
{#each lookups.time_zones as tz (tz.name)}
|
||||||
<tr class="transition-colors">
|
<tr class="transition-colors">
|
||||||
<td class="font-bold">{tz.name}</td>
|
<td class="font-bold">{tz.name}</td>
|
||||||
<td class="text-right"><span class="badge variant-soft-surface font-mono">{tz.offset_seconds / 3600}h</span></td>
|
<td class="text-right"><span class="badge variant-soft-surface font-mono">{tz.offset_seconds / 3600}h</span></td>
|
||||||
|
|||||||
@@ -289,7 +289,7 @@
|
|||||||
<p class="text-center py-4 italic opacity-60 border border-dashed border-surface-500/30">No unlinked user accounts found.</p>
|
<p class="text-center py-4 italic opacity-60 border border-dashed border-surface-500/30">No unlinked user accounts found.</p>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2">
|
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2">
|
||||||
{#each available_users as user}
|
{#each available_users as user (user.user_id)}
|
||||||
<button
|
<button
|
||||||
class="card p-3 variant-soft-primary hover:variant-filled-primary text-left transition-all flex flex-col gap-1"
|
class="card p-3 variant-soft-primary hover:variant-filled-primary text-left transition-all flex flex-col gap-1"
|
||||||
onclick={() => handle_link_user(user.user_id)}
|
onclick={() => handle_link_user(user.user_id)}
|
||||||
@@ -335,7 +335,7 @@
|
|||||||
<p class="text-sm italic opacity-50">No related events found.</p>
|
<p class="text-sm italic opacity-50">No related events found.</p>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
{#each related_events as ev}
|
{#each related_events as ev (ev.event_id)}
|
||||||
<a href="/events/{ev.event_id}" class="card p-3 variant-soft flex flex-col gap-1 hover:variant-soft-primary transition-all">
|
<a href="/events/{ev.event_id}" class="card p-3 variant-soft flex flex-col gap-1 hover:variant-soft-primary transition-all">
|
||||||
<span class="font-bold text-sm">{ev.name}</span>
|
<span class="font-bold text-sm">{ev.name}</span>
|
||||||
<span class="text-[10px] opacity-60">{new Date(ev.start_datetime).toLocaleDateString()}</span>
|
<span class="text-[10px] opacity-60">{new Date(ev.start_datetime).toLocaleDateString()}</span>
|
||||||
@@ -356,7 +356,7 @@
|
|||||||
<p class="text-sm italic opacity-50">No related posts found.</p>
|
<p class="text-sm italic opacity-50">No related posts found.</p>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
{#each related_posts as post}
|
{#each related_posts as post (post.post_id)}
|
||||||
<a href="/idaa/bb/{post.post_id}" class="card p-3 variant-soft flex flex-col gap-1 hover:variant-soft-primary transition-all">
|
<a href="/idaa/bb/{post.post_id}" class="card p-3 variant-soft flex flex-col gap-1 hover:variant-soft-primary transition-all">
|
||||||
<span class="font-bold text-sm">{post.title}</span>
|
<span class="font-bold text-sm">{post.title}</span>
|
||||||
<div class="flex justify-between items-center text-[10px] opacity-60">
|
<div class="flex justify-between items-center text-[10px] opacity-60">
|
||||||
@@ -380,7 +380,7 @@
|
|||||||
<p class="text-sm italic opacity-50">No recent activity logs.</p>
|
<p class="text-sm italic opacity-50">No recent activity logs.</p>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
{#each related_activity_logs as log}
|
{#each related_activity_logs as log, index (index)}
|
||||||
<div class="card p-3 variant-soft flex flex-col gap-1">
|
<div class="card p-3 variant-soft flex flex-col gap-1">
|
||||||
<div class="flex justify-between items-start gap-2">
|
<div class="flex justify-between items-start gap-2">
|
||||||
<span class="badge variant-filled-surface text-[9px] uppercase tracking-tighter">{log.action}</span>
|
<span class="badge variant-filled-surface text-[9px] uppercase tracking-tighter">{log.action}</span>
|
||||||
|
|||||||
@@ -141,7 +141,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
{#each filtered_li as site}
|
{#each filtered_li as site (site.site_id_random)}
|
||||||
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group relative">
|
||||||
<div class="absolute top-4 right-4 flex gap-1">
|
<div class="absolute top-4 right-4 flex gap-1">
|
||||||
{#if site.hide}
|
{#if site.hide}
|
||||||
|
|||||||
@@ -207,7 +207,7 @@
|
|||||||
<p class="text-sm opacity-60 text-center py-8 bg-surface-500/5 rounded-lg border-2 border-dashed border-surface-500/20">No domains configured.</p>
|
<p class="text-sm opacity-60 text-center py-8 bg-surface-500/5 rounded-lg border-2 border-dashed border-surface-500/20">No domains configured.</p>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="space-y-3">
|
<div class="space-y-3">
|
||||||
{#each domain_li as dom}
|
{#each domain_li as dom (dom.site_domain_id_random)}
|
||||||
<div class="card p-3 variant-soft shadow-sm border border-surface-500/10 flex justify-between items-center group">
|
<div class="card p-3 variant-soft shadow-sm border border-surface-500/10 flex justify-between items-center group">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<span class="font-bold text-sm flex items-center gap-1">
|
<span class="font-bold text-sm flex items-center gap-1">
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
{#each user_li as user}
|
{#each user_li as user (user.user_id_random)}
|
||||||
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group">
|
<div class="card p-5 space-y-4 variant-soft-surface shadow-md border border-surface-500/10 hover:border-primary-500/30 transition-all group">
|
||||||
<header class="flex justify-between items-start">
|
<header class="flex justify-between items-start">
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
|
|||||||
@@ -283,7 +283,7 @@
|
|||||||
{/if} -->
|
{/if} -->
|
||||||
</div>
|
</div>
|
||||||
<ul class="space-y-1">
|
<ul class="space-y-1">
|
||||||
{#each $lq__event_file_obj_li as event_file_obj, index}
|
{#each $lq__event_file_obj_li as event_file_obj (event_file_obj.event_file_id)}
|
||||||
<li
|
<li
|
||||||
class="flex flex-row flex-wrap gap-1 items-center justify-center"
|
class="flex flex-row flex-wrap gap-1 items-center justify-center"
|
||||||
class:hidden={!$events_loc.launcher
|
class:hidden={!$events_loc.launcher
|
||||||
@@ -357,7 +357,7 @@
|
|||||||
|
|
||||||
<!-- Maybe set max with? max-w-(--breakpoint-md) -->
|
<!-- Maybe set max with? max-w-(--breakpoint-md) -->
|
||||||
<ul class="event_presentation_list max-w-full space-y-2">
|
<ul class="event_presentation_list max-w-full space-y-2">
|
||||||
{#each $lq__event_presentation_obj_li as event_presentation_obj}
|
{#each $lq__event_presentation_obj_li as event_presentation_obj (event_presentation_obj.event_presentation_id)}
|
||||||
<li
|
<li
|
||||||
class="border-b-2 border-gray-300 my-1 py-1 text-center md:text-left"
|
class="border-b-2 border-gray-300 my-1 py-1 text-center md:text-left"
|
||||||
>
|
>
|
||||||
@@ -384,7 +384,7 @@
|
|||||||
|
|
||||||
<!-- Yes, this is kind of inefficient, but it works for now. -->
|
<!-- Yes, this is kind of inefficient, but it works for now. -->
|
||||||
{#if $lq__event_presenter_obj_li && type_code == 'poster'}
|
{#if $lq__event_presenter_obj_li && type_code == 'poster'}
|
||||||
{#each $lq__event_presenter_obj_li as event_presenter_obj, index}
|
{#each $lq__event_presenter_obj_li as event_presenter_obj, index (event_presenter_obj.event_presenter_id)}
|
||||||
{#if event_presenter_obj.event_presentation_id == event_presentation_obj.event_presentation_id}
|
{#if event_presenter_obj.event_presentation_id == event_presentation_obj.event_presentation_id}
|
||||||
<span
|
<span
|
||||||
class="event_presentation_single_presenter italic text-sm text-gray-500"
|
class="event_presentation_single_presenter italic text-sm text-gray-500"
|
||||||
@@ -427,7 +427,7 @@
|
|||||||
|
|
||||||
{#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li.length}
|
{#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li.length}
|
||||||
<ul class="event_presentation_presenter_list">
|
<ul class="event_presentation_presenter_list">
|
||||||
{#each $lq__event_presenter_obj_li as event_presenter_obj, index}
|
{#each $lq__event_presenter_obj_li as event_presenter_obj (event_presenter_obj.event_presenter_id)}
|
||||||
{#if event_presenter_obj.event_presentation_id == event_presentation_obj.event_presentation_id}
|
{#if event_presenter_obj.event_presentation_id == event_presentation_obj.event_presentation_id}
|
||||||
<li
|
<li
|
||||||
class="
|
class="
|
||||||
|
|||||||
@@ -332,7 +332,7 @@
|
|||||||
<span class="text-[10px] font-mono opacity-50 uppercase tracking-tighter">Real-time API Store View</span>
|
<span class="text-[10px] font-mono opacity-50 uppercase tracking-tighter">Real-time API Store View</span>
|
||||||
</header>
|
</header>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
{#each Object.entries(active_headers) as [key, value]}
|
{#each Object.entries(active_headers) as [key, value] (key)}
|
||||||
<div class="flex justify-between items-center p-3 bg-gray-500/10 rounded border border-gray-500/20">
|
<div class="flex justify-between items-center p-3 bg-gray-500/10 rounded border border-gray-500/20">
|
||||||
<span class="text-[10px] font-mono font-bold opacity-70">{key}</span>
|
<span class="text-[10px] font-mono font-bold opacity-70">{key}</span>
|
||||||
<span class="text-xs font-mono {key === 'x-ae-ignore-extra-fields' ? 'text-success-500 font-bold' : ''}">
|
<span class="text-xs font-mono {key === 'x-ae-ignore-extra-fields' ? 'text-success-500 font-bold' : ''}">
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
<p class="mb-4">Attempting to unregister all service workers and clear caches to fix the TypeError loop.</p>
|
<p class="mb-4">Attempting to unregister all service workers and clear caches to fix the TypeError loop.</p>
|
||||||
|
|
||||||
<div class="bg-gray-100 p-4 rounded border border-gray-300 min-h-[200px]">
|
<div class="bg-gray-100 p-4 rounded border border-gray-300 min-h-[200px]">
|
||||||
{#each status as line}
|
{#each status as line, i (i)}
|
||||||
<div class="border-b border-gray-200 last:border-0 py-1">{line}</div>
|
<div class="border-b border-gray-200 last:border-0 py-1">{line}</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||||
{#each hosted_files as file}
|
{#each hosted_files as file (file.id)}
|
||||||
<div class="card p-4 variant-soft-secondary space-y-4">
|
<div class="card p-4 variant-soft-secondary space-y-4">
|
||||||
<div class="flex justify-between items-start">
|
<div class="flex justify-between items-start">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Reference in New Issue
Block a user