From 83a42a1bac3c63bcb5f2c91b1c86634e8afe2a1f Mon Sep 17 00:00:00 2001 From: moonlitgrace Date: Wed, 8 Jan 2025 09:00:26 +0530 Subject: [PATCH] refactor: serialize and de-serialize timestamp --- frontend/src/lib/stores/recent_quibs.svelte.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/src/lib/stores/recent_quibs.svelte.ts b/frontend/src/lib/stores/recent_quibs.svelte.ts index 37060f36..e5170239 100644 --- a/frontend/src/lib/stores/recent_quibs.svelte.ts +++ b/frontend/src/lib/stores/recent_quibs.svelte.ts @@ -19,14 +19,24 @@ interface IRecentQuib extends Quib { const stored_recent_quibs = browser ? localStorage.getItem('recent_posts_store') : null; const parsed_stored_recent_quibs: IRecentQuib[] = stored_recent_quibs - ? JSON.parse(stored_recent_quibs) + ? // convert string to Date object + (JSON.parse(stored_recent_quibs) as IRecentQuib[]).map((q) => ({ + ...q, + timestamp: new Date(q.timestamp) + })) : []; let recent_quibs_state = $state(parsed_stored_recent_quibs); function sync_to_localstorage() { if (browser) { - localStorage.setItem('recent_posts_store', JSON.stringify(recent_quibs_state)); + // convert Date object to string + localStorage.setItem( + 'recent_posts_store', + JSON.stringify( + recent_quibs_state.map((q) => ({ ...q, timestamp: q.timestamp.toISOString() })) + ) + ); } }