From 9a51bb934a7946101b13efd12bcd3d9979709888 Mon Sep 17 00:00:00 2001 From: Chonticha Li <88100228+sealbb@users.noreply.github.com> Date: Tue, 24 Sep 2024 17:05:25 +0700 Subject: [PATCH] feat: create Promise List Component (#107) * feat: create PromiseList PromiseCard component and add to main page * fix: add key for each block * fix: fix error from key in each block * style: add color for notStarted status in promise card * fix: edit promise list component and card variables --- src/components/PromiseList/PromiseCard.svelte | 112 ++++++++++++++++++ src/components/PromiseList/PromiseList.svelte | 72 +++++++++++ src/routes/promises/+page.server.ts | 7 +- src/routes/promises/+page.svelte | 6 + 4 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 src/components/PromiseList/PromiseCard.svelte create mode 100644 src/components/PromiseList/PromiseList.svelte diff --git a/src/components/PromiseList/PromiseCard.svelte b/src/components/PromiseList/PromiseCard.svelte new file mode 100644 index 00000000..2ea9a0fe --- /dev/null +++ b/src/components/PromiseList/PromiseCard.svelte @@ -0,0 +1,112 @@ + + +
+
+ +
+
+ +

พรรค{promiseSummary.party.name}

+
+ +
+
+ +
+
+
+

+ {promiseSummary.statements} +

+
+
+ +
+
+
+ +
+ {#each [{ label: 'คีย์เวิร์ด', items: promiseSummary.keywords }, { label: 'หมวด', items: promiseSummary.categories }] as { label, items } (label)} +
+

{label}

+ {#each items as item, itemIndex (itemIndex)} + {#if item} + + {/if} + {/each} +
+ {/each} +
+
+ +
+
+

สถานะ

+
+ {promiseSummary.status} +
+
+
+

เคลื่อนไหวล่าสุด

+
{formatDate(promiseSummary.latestProgressDate.date)}
+
+
+
+ + diff --git a/src/components/PromiseList/PromiseList.svelte b/src/components/PromiseList/PromiseList.svelte new file mode 100644 index 00000000..0520dfce --- /dev/null +++ b/src/components/PromiseList/PromiseList.svelte @@ -0,0 +1,72 @@ + + +
+
+

ผลลัพธ์ {sortedData.length} คำสัญญา

+
+
+

เรียงตาม

+ +
+ +
+
+
+ {#each sortedData as promiseSummary, index (index)} + + {/each} +
+
diff --git a/src/routes/promises/+page.server.ts b/src/routes/promises/+page.server.ts index 0c5135df..3f550aa3 100644 --- a/src/routes/promises/+page.server.ts +++ b/src/routes/promises/+page.server.ts @@ -2,7 +2,7 @@ import { fetchAssemblies, fetchParties, fetchPoliticians } from '$lib/datasheets import { getAssemblyMembers } from '$lib/datasheets/assembly-member'; import type { Party } from '$models/party'; import type { Politician } from '$models/politician'; -import { PromiseStatus, type Promise } from '$models/promise'; +import { PromiseStatus, type Promise, type PromiseProgress } from '$models/promise'; import { clarifyingPromise, fulfilledPromise, @@ -36,6 +36,11 @@ export interface PromisesByCategory { count: number; } +export interface PromiseSummary + extends Pick { + latestProgressDate: PromiseProgress; +} + const CURRENT_CABINET_ASSEMBLY_ID = 'คณะรัฐมนตรี-64'; export async function load() { diff --git a/src/routes/promises/+page.svelte b/src/routes/promises/+page.svelte index 1a07f138..536b3f28 100644 --- a/src/routes/promises/+page.svelte +++ b/src/routes/promises/+page.svelte @@ -1,4 +1,6 @@ @@ -7,3 +9,7 @@
  • Detail page
  • Explore page
  • + +
    + +