diff options
Diffstat (limited to 'gui/src/views/budgetUpdatesTable')
| -rw-r--r-- | gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.css | 10 | ||||
| -rw-r--r-- | gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.tsx | 32 |
2 files changed, 42 insertions, 0 deletions
diff --git a/gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.css b/gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.css new file mode 100644 index 0000000..e862976 --- /dev/null +++ b/gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.css @@ -0,0 +1,10 @@ +div { + display: flex; + flex-direction: column; + gap: 1rem; +} + +form { + display: flex; + gap: 1rem; +} diff --git a/gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.tsx b/gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.tsx new file mode 100644 index 0000000..465ea92 --- /dev/null +++ b/gui/src/views/budgetUpdatesTable/BudgetUpdatesTableView.tsx @@ -0,0 +1,32 @@ +import { createSignal, Match, Resource, Switch } from 'solid-js'; +import { BudgetUpdate } from '../../types/budgetUpdate'; +import { BudgetUpdatesTable } from '../../components/BudgetUpdatesTable/BudgetUpdatesTable'; +import { Category } from '../../types/category'; +import './BudgetUpdatesTableView.css'; + +export function BudgetUpdatesTableView({ budgetUpdates, categories }: Props) { + const [newCategoryId, setCategoryId] = createSignal<number>(); + + const filteredAndSortedBudgetUpdates: BudgetUpdate[] = budgetUpdates() + ?.filter((bu) => bu.categoryId === newCategoryId()) + ?.sort((bu1, bu2) => bu2.date.diff(bu1.date)) + ?? []; + + return ( + <div> + <form action="none"> + <label for="category">Category</label> + <select id="category" onChange={(e) => setCategoryId(Number(e.target.value))}> + {(categories() ?? []).map((c) => + <option value={c.id}>{c.name}</option>)} + </select> + </form> + <BudgetUpdatesTable budgetUpdates={filteredAndSortedBudgetUpdates as BudgetUpdate[]} /> + </div> + ); +} + +type Props = { + budgetUpdates: Resource<BudgetUpdate[] | null>; + categories: Resource<Category[] | null>; +} |
