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.logo})
+
พรรค{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}
+
+
+
+
+
+
+
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 [{ icon: List, label: 'List' }, { icon: Grid, label: 'Grid' }] as { icon, label } (label)}
+
+ {/each}
+
+
+
+
+ {#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
+
+