From 978ce53dd8ec09fd05328e15ddf385d62e6e99e5 Mon Sep 17 00:00:00 2001 From: Michael Novotny Date: Wed, 25 Oct 2023 07:21:22 -0700 Subject: [PATCH] Full code review changes (#222) * Full code review changes * Adds link * Removes the x * Update dashboard/15-final/README.md * Update dashboard/15-final/app/lib/placeholder-data.js * Update dashboard/README.md * Update dashboard/README.md --------- Co-authored-by: Delba de Oliveira <32464864+delbaoliveira@users.noreply.github.com> --- dashboard/15-final/README.md | 2 +- .../app/dashboard/invoices/[id]/edit/page.tsx | 6 ++- dashboard/15-final/app/lib/actions.ts | 2 +- dashboard/15-final/app/lib/data.ts | 2 +- .../15-final/app/lib/placeholder-data.js | 3 +- dashboard/15-final/app/page.tsx | 4 +- dashboard/15-final/app/ui/acme-logo.tsx | 32 ++++------------ .../15-final/app/ui/dashboard/acme-logo.tsx | 38 ------------------- dashboard/15-final/app/ui/global.css | 5 +++ .../15-final/app/ui/invoices/create-form.tsx | 1 - .../15-final/app/ui/invoices/edit-form.tsx | 1 - dashboard/15-final/app/ui/login-form.tsx | 4 +- dashboard/README.md | 4 +- 13 files changed, 26 insertions(+), 78 deletions(-) delete mode 100644 dashboard/15-final/app/ui/dashboard/acme-logo.tsx diff --git a/dashboard/15-final/README.md b/dashboard/15-final/README.md index 9115daf..6f50856 100644 --- a/dashboard/15-final/README.md +++ b/dashboard/15-final/README.md @@ -2,4 +2,4 @@ This is the final template for the Next.js App Router Course. It contains the final code for the dashboard application. -For more information, see the [course curriculum]() on the Next.js Website. +For more information, see the [course curriculum](https://nextjs.org/learn) on the Next.js Website. diff --git a/dashboard/15-final/app/dashboard/invoices/[id]/edit/page.tsx b/dashboard/15-final/app/dashboard/invoices/[id]/edit/page.tsx index 7063f05..c6f2391 100644 --- a/dashboard/15-final/app/dashboard/invoices/[id]/edit/page.tsx +++ b/dashboard/15-final/app/dashboard/invoices/[id]/edit/page.tsx @@ -10,8 +10,10 @@ export const metadata: Metadata = { export default async function Page({ params }: { params: { id: string } }) { const id = params.id; - const invoice = await fetchInvoiceById(id); - const customers = await fetchCustomers(); + const [invoice, customers] = await Promise.all([ + fetchInvoiceById(id), + fetchCustomers(), + ]); if (!invoice) { notFound(); diff --git a/dashboard/15-final/app/lib/actions.ts b/dashboard/15-final/app/lib/actions.ts index 1ffc9a8..08d14f4 100644 --- a/dashboard/15-final/app/lib/actions.ts +++ b/dashboard/15-final/app/lib/actions.ts @@ -105,7 +105,7 @@ export async function updateInvoice(prevState: State, formData: FormData) { } export async function deleteInvoice(formData: FormData) { - throw new Error('Failed to Delete Invoice'); + // throw new Error('Failed to Delete Invoice'); const { id } = DeleteInvoice.parse({ id: formData.get('id'), diff --git a/dashboard/15-final/app/lib/data.ts b/dashboard/15-final/app/lib/data.ts index 63bef45..b9fec4c 100644 --- a/dashboard/15-final/app/lib/data.ts +++ b/dashboard/15-final/app/lib/data.ts @@ -12,7 +12,7 @@ import { formatCurrency } from './utils'; export async function fetchRevenue() { try { - // We artificially delay a reponse for demo purposes. + // We artificially delay a response for demo purposes. // Don't do this in real life :) console.log('Fetching revenue data...'); await new Promise((resolve) => setTimeout(resolve, 3000)); diff --git a/dashboard/15-final/app/lib/placeholder-data.js b/dashboard/15-final/app/lib/placeholder-data.js index 312891a..897ca47 100644 --- a/dashboard/15-final/app/lib/placeholder-data.js +++ b/dashboard/15-final/app/lib/placeholder-data.js @@ -1,4 +1,5 @@ -// This file contains placeholder data that you'll be replacing with real data in Chapter 7. +// This file contains placeholder data that you'll be replacing with real data in the Data Fetching chapter: +// https://nextjs.org/learn/dashboard-app/fetching-data const users = [ { id: 1, diff --git a/dashboard/15-final/app/page.tsx b/dashboard/15-final/app/page.tsx index 200633f..cbbd328 100644 --- a/dashboard/15-final/app/page.tsx +++ b/dashboard/15-final/app/page.tsx @@ -7,9 +7,7 @@ export default function Page() { return (
-
- -
+
diff --git a/dashboard/15-final/app/ui/acme-logo.tsx b/dashboard/15-final/app/ui/acme-logo.tsx index 6d3cef2..5003768 100644 --- a/dashboard/15-final/app/ui/acme-logo.tsx +++ b/dashboard/15-final/app/ui/acme-logo.tsx @@ -1,29 +1,13 @@ +import { GlobeAltIcon } from '@heroicons/react/24/outline'; +import { lusitana } from '@/app/ui/fonts'; + export default function AcmeLogo() { return ( - - Acme Logo - - - - - - - - + +

Acme

+
); } diff --git a/dashboard/15-final/app/ui/dashboard/acme-logo.tsx b/dashboard/15-final/app/ui/dashboard/acme-logo.tsx deleted file mode 100644 index 083e0bf..0000000 --- a/dashboard/15-final/app/ui/dashboard/acme-logo.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from 'react'; - -const LogoIcon: React.FC = () => { - return ( - - - - - - - - - - - - ); -}; - -export default LogoIcon; diff --git a/dashboard/15-final/app/ui/global.css b/dashboard/15-final/app/ui/global.css index ad40f47..c06d6d6 100644 --- a/dashboard/15-final/app/ui/global.css +++ b/dashboard/15-final/app/ui/global.css @@ -2,6 +2,11 @@ @tailwind components; @tailwind utilities; +input[type='number'] { + -moz-appearance: textfield; + appearance: textfield; +} + input[type='number']::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; diff --git a/dashboard/15-final/app/ui/invoices/create-form.tsx b/dashboard/15-final/app/ui/invoices/create-form.tsx index a24c888..2c234d3 100644 --- a/dashboard/15-final/app/ui/invoices/create-form.tsx +++ b/dashboard/15-final/app/ui/invoices/create-form.tsx @@ -73,7 +73,6 @@ export default function Form({ customers }: { customers: CustomerField[] }) { placeholder="Enter USD amount" className="peer block w-full rounded-md border border-gray-200 py-2 pl-10 text-sm outline-2 placeholder:text-gray-500" aria-describedby="amount-error" - style={{ MozAppearance: 'textfield' } as React.CSSProperties} />
diff --git a/dashboard/15-final/app/ui/invoices/edit-form.tsx b/dashboard/15-final/app/ui/invoices/edit-form.tsx index 685d3b7..cbf9a9c 100644 --- a/dashboard/15-final/app/ui/invoices/edit-form.tsx +++ b/dashboard/15-final/app/ui/invoices/edit-form.tsx @@ -81,7 +81,6 @@ export default function EditInvoiceForm({ placeholder="Enter USD amount" className="peer block w-full rounded-md border border-gray-200 py-2 pl-10 text-sm outline-2 placeholder:text-gray-500" aria-describedby="amount-error" - style={{ MozAppearance: 'textfield' } as React.CSSProperties} /> diff --git a/dashboard/15-final/app/ui/login-form.tsx b/dashboard/15-final/app/ui/login-form.tsx index 215f792..bd7422f 100644 --- a/dashboard/15-final/app/ui/login-form.tsx +++ b/dashboard/15-final/app/ui/login-form.tsx @@ -10,9 +10,7 @@ export default async function LoginForm() {
-
- -
+
{ diff --git a/dashboard/README.md b/dashboard/README.md index f115bd5..2ed707e 100644 --- a/dashboard/README.md +++ b/dashboard/README.md @@ -1,5 +1,5 @@ ## Next.js App Router Course - Build a Dashboard -This repository contains the starter templates for the [Next.js App Router Course](), separated by chapters. +This repository contains the starter templates for the [Next.js App Router Course](https://nextjs.org/learn), separated by chapters. -For more information, see the [course curriculum]() on the Next.js Website. +For more information, see the [course curriculum](https://nextjs.org/learn) on the Next.js Website.