fixup! ongoing editable category

This commit is contained in:
Luís Murta 2025-09-06 17:50:15 +01:00
parent d3c43c42ae
commit 7abe9fd082
3 changed files with 61 additions and 16 deletions

View File

@ -12,9 +12,9 @@ const queryClient = new QueryClient();
createRoot(document.getElementById("root")!).render( createRoot(document.getElementById("root")!).render(
<StrictMode> <StrictMode>
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<CategoryContext value={await categoriesLoader()}> <CategoryContext.Provider value={await categoriesLoader()}>
<RouterProvider router={router} /> <RouterProvider router={router} />
</CategoryContext> </CategoryContext.Provider>
</QueryClientProvider> </QueryClientProvider>
</StrictMode> </StrictMode>
); );

View File

@ -6,9 +6,13 @@ type Category = {
}; };
export async function loader(): Promise<Category[]> { export async function loader(): Promise<Category[]> {
return fetch(`http://localhost:9000/categories`).then((response) => { return [
return response.json(); { name: "Books", group: { name: "Media" } },
}); { name: "Movies", group: { name: "Media" } },
{ name: "Groceries", group: { name: "Shopping" } },
{ name: "Electronics", group: { name: "Shopping" } },
{ name: "Misc", group: undefined }
];
} }
export default function Categories() { export default function Categories() {

View File

@ -59,9 +59,14 @@ export default function Transactions() {
columnHelper.accessor("category", { columnHelper.accessor("category", {
header: "Category", header: "Category",
cell: (props) => { cell: (props) => {
console.log(props.getValue()); const [selectedCategory, setSelectedCategory] = useState(
props.getValue() as string
);
return ( return (
<select value={props.getValue()}> <select
value={selectedCategory}
onChange={(e) => setSelectedCategory(e.target.value)}
>
{categories.map((category) => ( {categories.map((category) => (
<option key={category.name} value={category.name}> <option key={category.name} value={category.name}>
{category.name} {category.name}
@ -86,15 +91,51 @@ export default function Transactions() {
}, },
]); ]);
const { data, isPending, isError } = useQuery({ // Static data for local editing
queryKey: ["transactions", pagination.pageIndex, columnFilters], const staticTransactions: Transaction[] = [
queryFn: () => {
loader( id: 1,
pagination.pageIndex, date: "2024-06-01",
columnFilters.find((filter) => filter.id == "category")!.value as string description: "Coffee Shop",
), value: 4.5,
placeholderData: keepPreviousData, category: "Food",
}); },
{
id: 2,
date: "2024-06-02",
description: "Book Store",
value: 15.0,
category: "Shopping",
},
{
id: 3,
date: "2024-06-03",
description: "Bus Ticket",
value: 2.75,
category: "Transport",
},
{
id: 4,
date: "2024-06-04",
description: "Groceries",
value: 32.2,
category: "Food",
},
{
id: 5,
date: "2024-06-05",
description: "Movie",
value: 12.0,
category: "Entertainment",
},
];
const data = {
transactions: staticTransactions,
totalCount: staticTransactions.length,
};
const isPending = false;
const isError = false;
const table = useReactTable({ const table = useReactTable({
columns, columns,