From 51a48161a7ac858aef810d1b85453b8b1086700a Mon Sep 17 00:00:00 2001 From: Dustin Do Date: Sun, 4 Aug 2024 01:39:19 +0700 Subject: [PATCH] fix(mobile): fix transaction date parsing (#202) --- apps/mobile/stores/transaction/hooks.tsx | 10 ++++++---- apps/mobile/stores/transaction/store.ts | 7 +++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/mobile/stores/transaction/hooks.tsx b/apps/mobile/stores/transaction/hooks.tsx index d7437192..4c750298 100644 --- a/apps/mobile/stores/transaction/hooks.tsx +++ b/apps/mobile/stores/transaction/hooks.tsx @@ -3,6 +3,7 @@ import { useMeQuery } from '@/queries/auth' import { type TransactionFormValues, type TransactionPopulated, + TransactionPopulatedSchema, TransactionSchema, } from '@6pm/validation' import { useMutation, useQuery } from '@tanstack/react-query' @@ -91,10 +92,11 @@ export function useTransaction(transactionId: string) { (state) => state.removeTransaction, ) - const transaction = useMemo( - () => transactions.find((t) => t.id === transactionId) || null, - [transactions, transactionId], - ) + const transaction = useMemo(() => { + const t = transactions.find((t) => t.id === transactionId) || null + + return t ? TransactionPopulatedSchema.parse(t) : null + }, [transactions, transactionId]) const query = useQuery({ ...transactionQueries.detail({ transactionId, diff --git a/apps/mobile/stores/transaction/store.ts b/apps/mobile/stores/transaction/store.ts index c87e7fe6..875403cc 100644 --- a/apps/mobile/stores/transaction/store.ts +++ b/apps/mobile/stores/transaction/store.ts @@ -1,4 +1,7 @@ -import type { TransactionPopulated } from '@6pm/validation' +import { + type TransactionPopulated, + TransactionPopulatedSchema, +} from '@6pm/validation' import AsyncStorage from '@react-native-async-storage/async-storage' import { orderBy, uniqBy } from 'lodash-es' import { create } from 'zustand' @@ -25,7 +28,7 @@ function normalizeTransactions(transactions: Transaction[]) { uniqBy(transactions, 'id'), ['date', 'createdAt'], ['desc', 'desc'], - ) + ).map((t) => TransactionPopulatedSchema.parse(t)) } export const useTransactionStore = create()(