diff --git a/client/public/components/accounts_page.tsx b/client/public/components/accounts_page.tsx index 6d9336d..43ebad4 100644 --- a/client/public/components/accounts_page.tsx +++ b/client/public/components/accounts_page.tsx @@ -3,7 +3,7 @@ import rek from 'rek' import Head from './head.ts' import usePromise from '../../shared/hooks/use_promise.ts' -import type { Account } from '../../../shared/types.ts' +import type { Account } from '../../../shared/types.db.ts' const AccountsPage: FunctionComponent = () => { const accounts = usePromise(() => rek('/api/accounts')) diff --git a/client/public/components/balances_page.tsx b/client/public/components/balances_page.tsx index c673cda..fdb4276 100644 --- a/client/public/components/balances_page.tsx +++ b/client/public/components/balances_page.tsx @@ -6,7 +6,8 @@ import { formatNumber } from '../utils/format_number.ts' import s from './balances_page.module.scss' import usePromise from '../../shared/hooks/use_promise.ts' -import type { Balance, FinancialYear } from '../../../shared/types.ts' +import type { FinancialYear } from '../../../shared/types.db.ts' +import type { Balance } from '../../../shared/types.db_composite.ts' const BalancesPage: FunctionComponent = () => { const [balances, years] = usePromise<[Balance[], number[]]>(() => diff --git a/client/public/components/entries_page.tsx b/client/public/components/entries_page.tsx index f20127b..42d8e8e 100644 --- a/client/public/components/entries_page.tsx +++ b/client/public/components/entries_page.tsx @@ -8,14 +8,14 @@ import rek from 'rek' import Head from './head.ts' import serializeForm from '../../shared/utils/serialize_form.ts' -import type { Entry, FinancialYear, Journal } from '../../../shared/types.ts' +import type { Entry, FinancialYear, Journal } from '../../../shared/types.db.ts' const dateYear = new Date().getFullYear() const EntriesPage: FunctionComponent = () => { const [journals, setJournals] = useState([]) const [financialYears, setFinancialYears] = useState([]) - const [entries, setEntries] = useState([]) + const [entries, setEntries] = useState<(Entry & { amount: string; journal: string })[]>([]) const location = useLocation() @@ -87,8 +87,8 @@ const EntriesPage: FunctionComponent = () => { {entry.journal} {entry.number} - {entry.entryDate?.slice(0, 10)} - {entry.transactionDate?.slice(0, 10)} + {(entry.entryDate as unknown as string)?.slice(0, 10)} + {(entry.transactionDate as unknown as string)?.slice(0, 10)} {entry.amount} {entry.description} diff --git a/client/public/components/entry_page.tsx b/client/public/components/entry_page.tsx index 1020560..d978988 100644 --- a/client/public/components/entry_page.tsx +++ b/client/public/components/entry_page.tsx @@ -1,14 +1,16 @@ import { h, type FunctionComponent } from 'preact' import { useRoute } from 'preact-iso' import rek from 'rek' -import { type Entry } from '../../../shared/types.ts' +import type { Entry, Transaction } from '../../../shared/types.db.ts' import usePromise from '../../shared/hooks/use_promise.ts' import { formatNumber } from '../utils/format_number.ts' import Head from './head.ts' const EntryPage: FunctionComponent = () => { const route = useRoute() - const entry = usePromise(() => rek(`/api/entries/${route.params.id}`)) + const entry = usePromise(() => + rek(`/api/entries/${route.params.id}`), + ) return (
@@ -41,8 +43,8 @@ const EntryPage: FunctionComponent = () => { {entry.journal} {entry.number} - {entry.entryDate?.slice(0, 10)} - {entry.transactionDate?.slice(0, 10)} + {(entry.entryDate as unknown as string)?.slice(0, 10)} + {(entry.transactionDate as unknown as string)?.slice(0, 10)} {entry.amount} {entry.description} @@ -63,8 +65,16 @@ const EntryPage: FunctionComponent = () => { {entry?.transactions?.map((transaction) => ( {transaction.accountNumber} - {transaction.amount >= 0 ? formatNumber(transaction.amount) : null} - {transaction.amount < 0 ? formatNumber(Math.abs(transaction.amount)) : null} + + {(transaction.amount as unknown as number) >= 0 + ? formatNumber(transaction.amount as unknown as number) + : null} + + + {(transaction.amount as unknown as number) < 0 + ? formatNumber(Math.abs(transaction.amount as unknown as number)) + : null} + {transaction.description} ))} diff --git a/client/public/components/invoice.tsx b/client/public/components/invoice.tsx index 133ad92..5749627 100644 --- a/client/public/components/invoice.tsx +++ b/client/public/components/invoice.tsx @@ -1,14 +1,14 @@ -import { h, type FunctionalComponent } from 'preact' +import { h, type FunctionComponent } from 'preact' import { useEffect, useState } from 'preact/hooks' import rek from 'rek' -import type { Transaction } from '../../../shared/types.ts' +import type { Transaction } from '../../../shared/types.db.ts' -interface Props { +interface InvoiceProps { year: number } -const Invoices: FunctionalComponent = ({ year }) => { +const Invoice: FunctionComponent = ({ year }) => { const [invoices, setInvoices] = useState([]) useEffect(() => { @@ -30,4 +30,4 @@ const Invoices: FunctionalComponent = ({ year }) => { ) } -export default Invoices +export default Invoice diff --git a/client/public/components/invoice_page.tsx b/client/public/components/invoice_page.tsx index f0df084..9f61063 100644 --- a/client/public/components/invoice_page.tsx +++ b/client/public/components/invoice_page.tsx @@ -1,13 +1,15 @@ import { h, type FunctionComponent } from 'preact' import { useRoute } from 'preact-iso' import rek from 'rek' -import type { Invoice } from '../../../shared/types.ts' +import type { File, Invoice, Transaction } from '../../../shared/types.db.ts' import usePromise from '../../shared/hooks/use_promise.ts' import { formatNumber } from '../utils/format_number.ts' import Head from './head.ts' const InvoicePage: FunctionComponent = () => { - const invoice = usePromise(() => rek(`/api/invoices/${route.params.id}`)) + const invoice = usePromise(() => + rek(`/api/invoices/${route.params.id}`), + ) const route = useRoute() return ( @@ -89,8 +91,16 @@ const InvoicePage: FunctionComponent = () => { {transaction.entryId} {transaction.accountNumber} - {transaction.amount >= 0 ? formatNumber(transaction.amount) : null} - {transaction.amount < 0 ? formatNumber(Math.abs(transaction.amount)) : null} + + {(transaction.amount as unknown as number) >= 0 + ? formatNumber(transaction.amount as unknown as number) + : null} + + + {(transaction.amount as unknown as number) < 0 + ? formatNumber(Math.abs(transaction.amount as unknown as number)) + : null} + {transaction.description} ))} diff --git a/client/public/components/invoices_by_supplier_page.tsx b/client/public/components/invoices_by_supplier_page.tsx index 35914ef..398941c 100644 --- a/client/public/components/invoices_by_supplier_page.tsx +++ b/client/public/components/invoices_by_supplier_page.tsx @@ -5,7 +5,7 @@ import { useRoute } from 'preact-iso' import rek from 'rek' import Head from './head.ts' import usePromise from '../../shared/hooks/use_promise.ts' -import type { Invoice, Supplier } from '../../../shared/types.ts' +import type { File, Invoice, Supplier } from '../../../shared/types.db.ts' import { formatPrice } from '../utils/format_number.ts' const format = Format.bind(null, null, 'YYYY.MM.DD') @@ -13,7 +13,7 @@ const format = Format.bind(null, null, 'YYYY.MM.DD') const InvoicesPage: FunctionComponent = () => { const route = useRoute() - const [supplier, invoices, totalAmount] = usePromise<[Supplier, Invoice[], number]>(() => + const [supplier, invoices, totalAmount] = usePromise<[Supplier, (Invoice & { files?: File[] })[], number]>(() => Promise.all([ rek(`/api/suppliers/${route.params.supplier}`), rek(`/api/invoices?supplier=${route.params.supplier}`), diff --git a/client/public/components/invoices_page.tsx b/client/public/components/invoices_page.tsx index 82520a5..80d6112 100644 --- a/client/public/components/invoices_page.tsx +++ b/client/public/components/invoices_page.tsx @@ -3,7 +3,7 @@ import rek from 'rek' import Head from './head.ts' import usePromise from '../../shared/hooks/use_promise.ts' -import type { Supplier } from '../../../shared/types.ts' +import type { Supplier } from '../../../shared/types.db.ts' const InvoicesPage: FunctionComponent = () => { const suppliers = usePromise(() => rek('/api/suppliers')) diff --git a/client/public/components/object.tsx b/client/public/components/object.tsx index 90882f9..61ca5e8 100644 --- a/client/public/components/object.tsx +++ b/client/public/components/object.tsx @@ -1,15 +1,16 @@ -import { h, type FunctionalComponent } from 'preact' +import { h, type FunctionComponent } from 'preact' +import type { Selectable } from 'kysely' import { useEffect, useState } from 'preact/hooks' import rek from 'rek' -import type { TransactionFull } from '../../../shared/types.ts' +import type { Transaction } from '../../../shared/types.db.ts' -interface Props { +interface ObjectComponentProps { objectId: number } -const Result: FunctionalComponent = ({ objectId }) => { - const [transactions, setTransactions] = useState([]) +const ObjectComponent: FunctionComponent = ({ objectId }) => { + const [transactions, setTransactions] = useState[]>([]) useEffect(() => { rek(`/api/objects/${objectId}`).then(setTransactions) @@ -31,7 +32,7 @@ const Result: FunctionalComponent = ({ objectId }) => { {transaction.entryId} - {transaction.transactionDate.slice(0, 10)} + {(transaction.transactionDate as unknown as string)?.slice(0, 10)} {transaction.accountNumber} {transaction.amount} @@ -41,4 +42,4 @@ const Result: FunctionalComponent = ({ objectId }) => { ) } -export default Result +export default ObjectComponent diff --git a/client/public/components/objects_page.tsx b/client/public/components/objects_page.tsx index b739f8f..0c88b73 100644 --- a/client/public/components/objects_page.tsx +++ b/client/public/components/objects_page.tsx @@ -1,15 +1,16 @@ import { h, type FunctionComponent } from 'preact' import { useState } from 'preact/hooks' import rek from 'rek' -import type { Object as ObjectType } from '../../../shared/types.ts' +import type { Selectable } from 'kysely' +import type { Object as ObjectType } from '../../../shared/types.db.ts' import usePromise from '../../shared/hooks/use_promise.ts' import Head from './head.ts' import Object from './object.tsx' import s from './results_page.module.scss' const ObjectsPage: FunctionComponent = () => { - const objects = usePromise(() => rek('/api/objects')) - const [currentObject, setCurrentObject] = useState(null) + const objects = usePromise<(Selectable & { dimensionName: string })[]>(() => rek('/api/objects')) + const [currentObject, setCurrentObject] = useState | null>(null) return (
diff --git a/client/public/components/results_page.tsx b/client/public/components/results_page.tsx index 06bc37f..1858d6d 100644 --- a/client/public/components/results_page.tsx +++ b/client/public/components/results_page.tsx @@ -1,7 +1,8 @@ import { h, type FunctionComponent } from 'preact' import cn from 'classnames' import rek from 'rek' -import type { FinancialYear, Result } from '../../../shared/types.ts' +import type { FinancialYear } from '../../../shared/types.db.ts' +import type { Result } from '../../../shared/types.db_composite.ts' import { formatNumber } from '../utils/format_number.ts' import usePromise from '../../shared/hooks/use_promise.ts' import Head from './head.ts' diff --git a/client/public/components/transactions_page.tsx b/client/public/components/transactions_page.tsx index 1d3832e..0375f68 100644 --- a/client/public/components/transactions_page.tsx +++ b/client/public/components/transactions_page.tsx @@ -8,11 +8,11 @@ import Head from './head.ts' import serializeForm from '../../shared/utils/serialize_form.ts' import { formatNumber } from '../utils/format_number.ts' -import type { TransactionFull, FinancialYear } from '../../../shared/types.ts' +import type { Transaction, FinancialYear } from '../../../shared/types.db.ts' const TransactionsPage: FunctionComponent = () => { const [financialYears, setFinancialYears] = useState([]) - const [transactions, setTransactions] = useState([]) + const [transactions, setTransactions] = useState<(Transaction & { entryDescription: string })[]>([]) const location = useLocation() @@ -27,17 +27,13 @@ const TransactionsPage: FunctionComponent = () => { }, []) useEffect(() => { - rek('/api/financial-years').then((financialYears: FinancialYear[]) => { - setFinancialYears(financialYears) - }) + rek('/api/financial-years').then(setFinancialYears) }, []) useEffect(() => { const search = location.url.split('?')[1] || '' - rek(`/api/transactions${search ? '?' + search : ''}`).then((transactions: TransactionFull[]) => { - setTransactions(transactions) - }) + rek(`/api/transactions${search ? '?' + search : ''}`).then(setTransactions) }, [location.url]) return ( @@ -72,10 +68,18 @@ const TransactionsPage: FunctionComponent = () => { {transactions.map((transaction) => ( - {transaction.transactionDate.slice(0, 10)} + {(transaction.transactionDate as unknown as string)?.slice(0, 10)} {transaction.accountNumber} - {transaction.amount >= 0 ? formatNumber(transaction.amount) : null} - {transaction.amount < 0 ? formatNumber(Math.abs(transaction.amount)) : null} + + {(transaction.amount as unknown as number) >= 0 + ? formatNumber(transaction.amount as unknown as number) + : null} + + + {(transaction.amount as unknown as number) < 0 + ? formatNumber(Math.abs(transaction.amount as unknown as number)) + : null} + {transaction.description} {transaction.entryId}