diff --git a/messages/en.json b/messages/en.json index 316e4ba..0feefc8 100644 --- a/messages/en.json +++ b/messages/en.json @@ -74,6 +74,14 @@ }, "tooltips": { "viewShoppingCart": "View shopping cart" + }, + "shoppingCart": { + "title": "Shopping Cart", + "productId": "Product id", + "productName": "Product Name", + "location": "Location", + "unitsAvailable": "Units available", + "tableDescription": "A list of your shopping cart items." } } } diff --git a/messages/no.json b/messages/no.json index 79286cb..edd79a6 100644 --- a/messages/no.json +++ b/messages/no.json @@ -74,6 +74,14 @@ }, "tooltips": { "viewShoppingCart": "Vis handlekurv" + }, + "shoppingCart": { + "title": "Handlekurv", + "productId": "Produkt id", + "productName": "Produktnavn", + "location": "Plass", + "unitsAvailable": "Stk tilgjengelig", + "tableDescription": "En liste over handlekurven din." } } } diff --git a/src/app/[locale]/(default)/storage/shopping-cart/page.tsx b/src/app/[locale]/(default)/storage/shopping-cart/page.tsx new file mode 100644 index 0000000..08c3d51 --- /dev/null +++ b/src/app/[locale]/(default)/storage/shopping-cart/page.tsx @@ -0,0 +1,51 @@ +import { useTranslations } from 'next-intl'; + +import { + Table, + TableBody, + TableCaption, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/Table'; + +export default function StorageShoppingCartPage() { + const t = useTranslations('storage.shoppingCart'); + return ( + <> +

{t('title')}

+ + {t('tableDescription')} + + + {t('productId')} + {t('productName')} + {t('location')} + {t('unitsAvailable')} + + + + + 01 + Laptop + Storage Room A + 15 + + + 01 + Laptop + Storage Room A + 15 + + + 01 + Laptop + Storage Room A + 15 + + +
+ + ); +} diff --git a/src/components/ui/Table.tsx b/src/components/ui/Table.tsx new file mode 100644 index 0000000..4d00f59 --- /dev/null +++ b/src/components/ui/Table.tsx @@ -0,0 +1,117 @@ +import * as React from 'react'; + +import { cx } from '@/lib/utils'; + +const Table = React.forwardRef< + HTMLTableElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+ + +)); +Table.displayName = 'Table'; + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableHeader.displayName = 'TableHeader'; + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableBody.displayName = 'TableBody'; + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + tr]:last:border-b-0', + className, + )} + {...props} + /> +)); +TableFooter.displayName = 'TableFooter'; + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableRow.displayName = 'TableRow'; + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +TableHead.displayName = 'TableHead'; + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableCell.displayName = 'TableCell'; + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +TableCaption.displayName = 'TableCaption'; + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +}; diff --git a/src/lib/config.ts b/src/lib/config.ts index 1ea67ef..25b8b97 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -30,6 +30,10 @@ const pathnames = { en: '/storage', no: '/lager', }, + '/storage/shopping-cart': { + en: '/storage/shopping-cart', + no: '/lager/handlekurv', + }, '/about': { en: '/about', no: '/om-oss',