fix content not showing in admin feedback panel
All checks were successful
delpoy / build-and-deploy (push) Successful in 54s

This commit is contained in:
bytedream 2024-11-30 16:02:45 +01:00
parent 55798fd294
commit 1e7915837a

View File

@ -11,8 +11,8 @@
import Textarea from '$lib/components/Input/Textarea.svelte'; import Textarea from '$lib/components/Input/Textarea.svelte';
import { onDestroy, onMount } from 'svelte'; import { onDestroy, onMount } from 'svelte';
let feedback: (typeof Feedback.prototype.dataValues)[] = []; let feedbacks: (typeof Feedback.prototype.dataValues)[] = [];
let feedbackPerRequest = 25; let feedbacksPerRequest = 25;
let feedbackFilter = { event: null, content: null, username: null }; let feedbackFilter = { event: null, content: null, username: null };
let activeFeedback: typeof Feedback.prototype.dataValues | null = null; let activeFeedback: typeof Feedback.prototype.dataValues | null = null;
@ -27,8 +27,8 @@
method: 'POST', method: 'POST',
body: JSON.stringify({ body: JSON.stringify({
...feedbackFilter, ...feedbackFilter,
limit: extendedFilter?.limit ?? feedbackPerRequest, limit: extendedFilter?.limit ?? feedbacksPerRequest,
from: extendedFilter?.from ?? feedback.length from: extendedFilter?.from ?? feedbacks.length
}) })
}); });
return await response.json(); return await response.json();
@ -38,12 +38,12 @@
if (!window.location.hash) return; if (!window.location.hash) return;
const requestedHash = window.location.hash.substring(1); const requestedHash = window.location.hash.substring(1);
let f = feedback.find((r) => r.url_hash === requestedHash); let feedback = feedbacks.find((r) => r.url_hash === requestedHash);
if (!f) { if (!feedback) {
const hashFeedback = (await fetchFeedback({ hash: requestedHash }))[0]; const hashFeedback = (await fetchFeedback({ hash: requestedHash }))[0];
if (hashFeedback) { if (hashFeedback) {
feedback = [hashFeedback, ...feedback]; feedback = [hashFeedback, ...feedback];
f = feedback; feedback = hashFeedback;
} else { } else {
await goto(window.location.href.split('#')[0], { replaceState: true }); await goto(window.location.href.split('#')[0], { replaceState: true });
return; return;
@ -60,7 +60,7 @@
if (browser) window.removeEventListener('hashchange', openHashReport); if (browser) window.removeEventListener('hashchange', openHashReport);
}); });
$: if (feedbackFilter) fetchFeedback({ from: 0 }).then((r) => (feedback = r)); $: if (feedbackFilter) fetchFeedback({ from: 0 }).then((r) => (feedbacks = r));
</script> </script>
<div class="h-full flex flex-row"> <div class="h-full flex flex-row">
@ -78,9 +78,9 @@
</thead> </thead>
<PaginationTableBody <PaginationTableBody
onUpdate={async () => onUpdate={async () =>
await fetchFeedback().then((res) => (feedback = [...feedback, ...res]))} await fetchFeedback().then((feedback) => (feedbacks = [...feedbacks, ...feedback]))}
> >
{#each feedback as feedback} {#each feedbacks as feedback}
<tr <tr
class="hover [&>*]:text-sm cursor-pointer" class="hover [&>*]:text-sm cursor-pointer"
class:bg-base-200={activeFeedback?.url_hash === feedback.url_hash} class:bg-base-200={activeFeedback?.url_hash === feedback.url_hash}
@ -173,7 +173,7 @@
> >
<span slot="label">Nutzer</span> <span slot="label">Nutzer</span>
</Input> </Input>
<Textarea readonly={true} rows={4} label="Feedback" value={activeFeedback.content} /> <Textarea readonly={true} rows={4} label="Inhalt" value={activeFeedback.content} />
</div> </div>
</div> </div>
{/if} {/if}