-
+
{arg.drink.name}
0 ? "warning" : "secondary"}>ABV: {arg.drink.abv}% {style} {ibu} {arg.drink.sugar ? "" : Sugar-free} {arg.drink.gluten ? "" : Gluten-free} {arg.drink.organic ? Organic : ""}
- {arg.drink.description}
+ {arg.drink.description}
+ {link}
-
-
+ {arg.drink.image ? (
+
+
+ ) : ""}
@@ -82,6 +118,9 @@ function DrinkPage(arg:Arguments) {
Container |
Volume |
Amount |
+ {arg.isAdmin ? (
+
Edit |
+ ) : ""}
@@ -91,6 +130,9 @@ function DrinkPage(arg:Arguments) {
{containerTypeToString(container.type)} |
{volume(container.volume)} |
{container.inventory} |
+ {arg.isAdmin ? (
+ |
+ ) : ""}
))}
@@ -106,14 +148,24 @@ function DrinkPage(arg:Arguments) {
{ manufacturer ? (
+ {arg.isAdmin ? (
+
+
+
+
+
+
+ ) : ""}
{manufacturer.name} ({manufacturer.country_id})
{manufacturer.description}
+ {manufacturer.image ? (
-
+
+ ) : ""}
diff --git a/app/routes/admin/edit/cocktail.$id.tsx b/app/routes/admin/edit/cocktail.$id.tsx
index 636698d..4e5dd5d 100644
--- a/app/routes/admin/edit/cocktail.$id.tsx
+++ b/app/routes/admin/edit/cocktail.$id.tsx
@@ -80,7 +80,7 @@ export default function EditCocktailRoute() {
Edit cocktail ({loaderData.cocktail.id})
-
ID
diff --git a/app/routes/admin/edit/container.$id.tsx b/app/routes/admin/edit/container.$id.tsx
index cbb712a..53a0fe3 100644
--- a/app/routes/admin/edit/container.$id.tsx
+++ b/app/routes/admin/edit/container.$id.tsx
@@ -75,7 +75,7 @@ export default function EditContainerRoute() {
Edit Container ({loaderData.container.id})
-
ID
@@ -111,11 +111,11 @@ export default function EditContainerRoute() {
Container type
-
-
-
-
-
+
+
+
+
+
diff --git a/app/routes/admin/edit/soda.$id.tsx b/app/routes/admin/edit/soda.$id.tsx
index 09c880b..3b529c0 100644
--- a/app/routes/admin/edit/soda.$id.tsx
+++ b/app/routes/admin/edit/soda.$id.tsx
@@ -80,7 +80,7 @@ export default function EditSodaRoute() {
Edit soda ({loaderData.soda.id})
-
ID
diff --git a/app/routes/admin/edit/wine.$id.tsx b/app/routes/admin/edit/wine.$id.tsx
index 995b3e1..5e223ae 100644
--- a/app/routes/admin/edit/wine.$id.tsx
+++ b/app/routes/admin/edit/wine.$id.tsx
@@ -98,7 +98,7 @@ export default function EditWineRoute() {
Edit wine ({loaderData.wine.id})
-
ID
diff --git a/app/routes/admin/layout.tsx b/app/routes/admin/layout.tsx
index ca32d82..0066ea5 100644
--- a/app/routes/admin/layout.tsx
+++ b/app/routes/admin/layout.tsx
@@ -17,7 +17,7 @@ export async function loader({
}
let user = session.get("user");
- if(user.type != UserType.Admin){
+ if(user.type != "Admin"){
return redirect("/");
}
diff --git a/app/routes/admin/new/container.tsx b/app/routes/admin/new/container.tsx
index 7cb74b6..cc2178b 100644
--- a/app/routes/admin/new/container.tsx
+++ b/app/routes/admin/new/container.tsx
@@ -1,6 +1,6 @@
import type { ActionFunctionArgs } from "@remix-run/node";
import { LoaderFunctionArgs, json, redirect } from "@remix-run/node";
-import { useLoaderData } from "@remix-run/react";
+import { isRouteErrorResponse, useLoaderData, useRouteError } from "@remix-run/react";
import { Container, Row, Button, Form, Col, ListGroup, InputGroup } from "react-bootstrap";
import { enhance } from "~/utils/db.server";
@@ -58,7 +58,7 @@ export default function NewContainerRoute() {
Add Container
-
Drink
@@ -84,11 +84,11 @@ export default function NewContainerRoute() {
Container type
-
-
-
-
-
+
+
+
+
+
diff --git a/app/routes/inventory/beer.$beerslug.tsx b/app/routes/inventory/beer.$beerslug.tsx
index afc42d3..335ecba 100644
--- a/app/routes/inventory/beer.$beerslug.tsx
+++ b/app/routes/inventory/beer.$beerslug.tsx
@@ -10,14 +10,15 @@ import {
import DrinkPage from "~/components/cards/drink.page";
-import { db } from "~/utils/db.server";
-import { enhance } from "@zenstackhq/runtime";
+
import { findIdFromSlug } from "~/models/drinks.server";
+import { enhance } from "~/utils/db.server";
export const loader = async ({
+ request,
params,
}: LoaderFunctionArgs) => {
- const dbe = enhance(db);
+ const {dbe, session} = await enhance(request);
const beerid = await findIdFromSlug(params.beerslug);
@@ -30,14 +31,18 @@ export const loader = async ({
status: 404,
});
}
- return json({ beer });
+
+ let user = session.get("user");
+ let isAdmin = user?.type == "Admin";
+
+ return json({ beer , isAdmin: isAdmin});
};
export default function BeerRoute() {
const data = useLoaderData();
return (
-
+
);
}
diff --git a/app/routes/inventory/cocktail.$cocktailslug.tsx b/app/routes/inventory/cocktail.$cocktailslug.tsx
index 11cf179..135c0e1 100644
--- a/app/routes/inventory/cocktail.$cocktailslug.tsx
+++ b/app/routes/inventory/cocktail.$cocktailslug.tsx
@@ -10,34 +10,38 @@ import {
import DrinkPage from "~/components/cards/drink.page";
-import { db } from "~/utils/db.server";
-import { enhance } from "@zenstackhq/runtime";
import { findIdFromSlug } from "~/models/drinks.server";
+import { enhance } from "~/utils/db.server";
export const loader = async ({
+ request,
params,
}: LoaderFunctionArgs) => {
-const dbe = enhance(db);
+ const {dbe, session} = await enhance(request);
-const cocktailid = await findIdFromSlug(params.cocktailslug);
+ const cocktailid = await findIdFromSlug(params.cocktailslug);
-const cocktail = await dbe.cocktail.findUnique({
- where: { id: cocktailid },
- include: { manufacturer: true, containers: { include: { section: true}}}
-});
-if (!cocktail) {
- throw new Response("Cocktail not found.", {
- status: 404,
+ const cocktail = await dbe.cocktail.findUnique({
+ where: { id: cocktailid },
+ include: { manufacturer: true, containers: { include: { section: true}}}
});
-}
-return json({ cocktail });
+ if (!cocktail) {
+ throw new Response("Cocktail not found.", {
+ status: 404,
+ });
+ }
+
+ let user = session.get("user");
+ let isAdmin = user?.type == "Admin";
+
+ return json({ cocktail , isAdmin: isAdmin});
};
export default function CocktailRoute() {
const data = useLoaderData();
return (
-
+
);
}
diff --git a/app/routes/inventory/manufacturer.$id.tsx b/app/routes/inventory/manufacturer.$id.tsx
index 949289c..b2da15d 100644
--- a/app/routes/inventory/manufacturer.$id.tsx
+++ b/app/routes/inventory/manufacturer.$id.tsx
@@ -13,7 +13,7 @@ import DrinkPage from "~/components/cards/drink.page";
import { db } from "~/utils/db.server";
import { enhance } from "@zenstackhq/runtime";
import { findIdFromSlug } from "~/models/drinks.server";
-import { Image } from "react-bootstrap";
+import { Col, Container, Image, Row } from "react-bootstrap";
export const loader = async ({
params,
@@ -37,12 +37,16 @@ export default function ManufacturerRoute() {
const data = useLoaderData();
return (
-
-
{data.man.name} ({data.man.country_id})
-
{data.man.description}
- {data.man.image ? (
-
- ) : <>>}
-
+
+
+
+ {data.man.name} ({data.man.country_id})
+ {data.man.description}
+ {data.man.image ? (
+
+ ) : <>>}
+
+
+
);
}
\ No newline at end of file
diff --git a/app/routes/inventory/soda.$sodaslug.tsx b/app/routes/inventory/soda.$sodaslug.tsx
index c716986..3390236 100644
--- a/app/routes/inventory/soda.$sodaslug.tsx
+++ b/app/routes/inventory/soda.$sodaslug.tsx
@@ -10,35 +10,39 @@ import {
import DrinkPage from "~/components/cards/drink.page";
-import { db } from "~/utils/db.server";
-import { enhance } from "@zenstackhq/runtime";
import { findIdFromSlug } from "~/models/drinks.server";
+import { enhance } from "~/utils/db.server";
export const loader = async ({
+ request,
params,
}: LoaderFunctionArgs) => {
-const dbe = enhance(db);
+ const {dbe, session} = await enhance(request);
-const sodaid = await findIdFromSlug(params.sodaslug);
+ const sodaid = await findIdFromSlug(params.sodaslug);
-const soda = await dbe.soda.findUnique({
- where: { id: sodaid },
- include: { manufacturer: true, containers: { include: { section: true}}}
-});
-if (!soda) {
- throw new Response("Soda not found.", {
- status: 404,
+ const soda = await dbe.soda.findUnique({
+ where: { id: sodaid },
+ include: { manufacturer: true, containers: { include: { section: true}}}
});
-}
-return json({ soda });
+ if (!soda) {
+ throw new Response("Soda not found.", {
+ status: 404,
+ });
+ }
+
+ let user = session.get("user");
+ let isAdmin = user?.type == "Admin";
+
+ return json({ soda , isAdmin: isAdmin});
};
export default function SodaRoute() {
-const data = useLoaderData();
+ const data = useLoaderData();
-return (
-
-);
+ return (
+
+ );
}
export function ErrorBoundary() {
diff --git a/app/routes/inventory/stats/route.tsx b/app/routes/inventory/stats/route.tsx
index 6fcbe4d..37074e9 100644
--- a/app/routes/inventory/stats/route.tsx
+++ b/app/routes/inventory/stats/route.tsx
@@ -1,7 +1,8 @@
import { LoaderFunctionArgs, json } from "@remix-run/node";
-import { useLoaderData } from "@remix-run/react";
+import { Link, useLoaderData } from "@remix-run/react";
import { enhance } from "@zenstackhq/runtime";
-import { Col, Container, Row, Table } from "react-bootstrap";
+import { Button, Col, Container, Row, Table } from "react-bootstrap";
+import { LinkContainer } from "react-router-bootstrap";
import { ContainerWithDrink } from "~/models/types";
import timeAgo from "~/utils/datetime";
@@ -115,6 +116,7 @@ export default function StatsRoute() {
| Drink |
+ View |
When |
Amount left |
@@ -123,6 +125,7 @@ export default function StatsRoute() {
{loadData.history.map((entry) => (
| {entry.container.drink.name} |
+ |
{timeAgo(new Date(entry.checkoutAt))} |
{entry.inventoryAfter} |
diff --git a/app/routes/inventory/wine.$wineslug.tsx b/app/routes/inventory/wine.$wineslug.tsx
index c102d03..4302006 100644
--- a/app/routes/inventory/wine.$wineslug.tsx
+++ b/app/routes/inventory/wine.$wineslug.tsx
@@ -10,35 +10,38 @@ import {
import DrinkPage from "~/components/cards/drink.page";
-import { db } from "~/utils/db.server";
-import { enhance } from "@zenstackhq/runtime";
import { findIdFromSlug } from "~/models/drinks.server";
+import { enhance } from "~/utils/db.server";
export const loader = async ({
+ request,
params,
}: LoaderFunctionArgs) => {
-const dbe = enhance(db);
+ const {dbe, session} = await enhance(request);
-const wineid = await findIdFromSlug(params.wineslug);
+ const wineid = await findIdFromSlug(params.wineslug);
-const wine = await dbe.wine.findUnique({
- where: { id: wineid },
- include: { style: true, manufacturer: true, containers: { include: { section: true}}}
-});
-if (!wine) {
- throw new Response("Wine not found.", {
- status: 404,
+ const wine = await dbe.wine.findUnique({
+ where: { id: wineid },
+ include: { style: true, manufacturer: true, containers: { include: { section: true}}}
});
-}
-return json({ wine });
+ if (!wine) {
+ throw new Response("Wine not found.", {
+ status: 404,
+ });
+ }
+ let user = session.get("user");
+ let isAdmin = user?.type == "Admin";
+
+ return json({ wine , isAdmin: isAdmin});
};
export default function WineRoute() {
-const data = useLoaderData();
+ const data = useLoaderData();
-return (
-
-);
+ return (
+
+ );
}
export function ErrorBoundary() {