Files
next-learn/dashboard/final-example/app/lib/definitions.ts
Delba de Oliveira 9044c85918 Fix broken images, remove unused assets, update types, polish (#224)
* Update next to canary

* Update layout.tsx

* Use canary

* Remove serverActions flag warning

* Use unstable_noStore

* Add Date.now() test

* Update metadataBase url

* Create wrapper component for Cards

* Update page.tsx

* Misc

* Delete unused data fetch

* Add noStore to /invoices and /customers functions

* Remove date.now()

* Use canary

* Rename component

* Fix imports

* Update types for useFormStatus and useFormState

* Rename folder, add team members

* fixed images and added login button pending state

* Update dashboard/final-example/app/lib/data.ts

Co-authored-by: Matt Kane <m@mk.gg>

---------

Co-authored-by: Steven Tey <stevensteel97@gmail.com>
Co-authored-by: Matt Kane <m@mk.gg>
2023-10-26 09:31:48 -06:00

89 lines
1.8 KiB
TypeScript

// This file contains type definitions for your data.
// It describes the shape of the data, and what data type each property should accept.
// For simplicity of teaching, we're manually defining these types.
// However, these types are generated automatically if you're using an ORM such as Prisma.
export type User = {
id: string;
name: string;
email: string;
password: string;
};
export type Customer = {
id: string;
name: string;
email: string;
image_url: string;
};
export type Invoice = {
id: string;
customer_id: string;
amount: number;
date: string;
// In TypeScript, this is called a string union type.
// It means that the "status" property can only be one of the two strings: 'pending' or 'paid'.
status: 'pending' | 'paid';
};
export type Revenue = {
month: string;
revenue: number;
};
export type LatestInvoice = {
id: string;
name: string;
image_url: string;
email: string;
amount: string;
};
// The database returns a number for amount, but we later format it to a string with the formatCurrency function
export type LatestInvoiceRaw = Omit<LatestInvoice, 'amount'> & {
amount: number;
};
export type InvoicesTable = {
id: string;
customer_id: string;
name: string;
email: string;
image_url: string;
date: string;
amount: number;
status: 'pending' | 'paid';
};
export type CustomersTable = {
id: string;
name: string;
email: string;
image_url: string;
total_invoices: number;
total_pending: number;
total_paid: number;
};
export type FormattedCustomersTable = {
id: string;
name: string;
email: string;
image_url: string;
total_invoices: number;
total_pending: string;
total_paid: string;
};
export type CustomerField = {
id: string;
name: string;
};
export type InvoiceForm = {
id: string;
customer_id: string;
amount: number;
status: 'pending' | 'paid';
};