Skip to content

Commit 6c7f5b6

Browse files
committed
Run Nextjs upgrade codemod
- Formspree missing React 19 dependancy. Contact Form still functions for now: formspree/formspree-js#64 - HTML React Parser missing React 19 dependacy. Still working for now: remarkablemark/html-react-parser#1648 - Webpack is enabled but Turbo isn't? https://nextjs.org/docs/app/api-reference/config/next-config-js/turbo - Theme Switcher now causing hydration error but still functions for now. Look at updating, or moving to Tailwind 4 beta
1 parent 80e5202 commit 6c7f5b6

File tree

12 files changed

+785
-308
lines changed

12 files changed

+785
-308
lines changed

app/dashboard/contents/[content]/products/page.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import { faArrowLeft } from "@fortawesome/free-solid-svg-icons";
1010
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
1111
import Pagination from "@/components/dashboard/pagination";
1212

13-
export default async function ContentProducts({
14-
params,
15-
searchParams,
16-
}: {
17-
params: Promise<{ content: string }>;
18-
searchParams: { [key: string]: string | string[] | undefined };
19-
}) {
20-
const { content } = await params;
13+
export default async function ContentProducts(
14+
props: {
15+
params: Promise<{ content: string }>;
16+
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
17+
}
18+
) {
19+
const searchParams = await props.searchParams;
20+
const { content } = await props.params;
2121

2222
const session = await auth();
2323

app/dashboard/products/[product]/page.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ import Variants from "@/components/product/variants";
1414
// consider generating these pages at build time using https://nextjs.org/docs/app/api-reference/functions/generate-static-params
1515
// generateStaticParams() has issues with current cookie setup being out of global scope (https://nextjs.org/docs/messages/next-dynamic-api-wrong-context)
1616

17-
export default async function Product({
18-
params,
19-
}: {
20-
params: { product: string };
21-
}) {
17+
export default async function Product(
18+
props: {
19+
params: Promise<{ product: string }>;
20+
}
21+
) {
22+
const params = await props.params;
2223

2324
const session = await auth();
2425

@@ -141,5 +142,4 @@ export default async function Product({
141142
</>
142143
);
143144
}
144-
145145
}

app/dashboard/products/page.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ import ThumbLoader from "@/components/dashboard/thumb-loader";
1010
import { faArrowLeft } from "@fortawesome/free-solid-svg-icons";
1111
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
1212

13-
export default async function Products({
14-
searchParams,
15-
}: {
16-
searchParams: { [key: string]: string | string[] | undefined };
17-
}) {
13+
export default async function Products(
14+
props: {
15+
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
16+
}
17+
) {
18+
const searchParams = await props.searchParams;
1819
const session = await auth();
1920

2021
if (session) {

app/demo/content/[content]/products/page.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import ContentPagination from "@/components/demo/demoContentPagination";
88
import { faArrowLeft } from "@fortawesome/free-solid-svg-icons";
99
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
1010

11-
export default async function DemoContentProducts({
12-
params,
13-
searchParams,
14-
}: {
15-
params: Promise<{ content: string }>;
16-
searchParams: { [key: string]: string | string[] | undefined };
17-
}) {
18-
const { content } = await params;
11+
export default async function DemoContentProducts(
12+
props: {
13+
params: Promise<{ content: string }>;
14+
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
15+
}
16+
) {
17+
const searchParams = await props.searchParams;
18+
const { content } = await props.params;
1919

2020
console.log(`DEMO CONTENT PARAMS`);
2121
console.log(content);

app/demo/products/[product]/page.tsx

Lines changed: 90 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -154,96 +154,70 @@ async function getDemoChildProducts(parent: string, ids: Array<Number>) {
154154
return res.json()
155155
}
156156

157-
export default async function DemoProduct({
158-
params,
159-
}: {
160-
params: { product: string };
161-
}) {
157+
export default async function DemoProduct(
158+
props: {
159+
params: Promise<{ product: string }>;
160+
}
161+
) {
162+
const params = await props.params;
162163

163-
const product = await getDemoProduct(params.product);
164-
if (product.Item.length) {
165-
const results = product.Item[0];
166-
let childProducts = await getDemoChildProducts(
167-
results.SKU,
168-
results.VariantInventoryIDs
169-
);
170-
171-
return (
172-
<section className="grid gap-4 grid-cols-3 max-w-screen-xl mx-3">
173-
<h2 className="col-span-3 text-2xl font-semibold mt-4 mb-2">
174-
Viewing Product SKU: {params.product}
175-
</h2>
176-
<Link href={`/demo/products`} className="col-span-3 text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
177-
<FontAwesomeIcon icon={faArrowLeft} />{" "}
178-
Go back to all products
179-
</Link>
180-
<div className="col-span-3 md:col-span-2">
181-
<Images sku={results.SKU} images={results.Images} />
182-
</div>
183-
<div className="col-span-3 md:col-span-1">
184-
<p className="text-4xl font-semibold">{results.Model}</p>
185-
<p>SKU: {results.SKU}</p>
186-
{results.ParentSKU && (
187-
<Link
188-
href={`/demo/products/${results.ParentSKU}`}
189-
className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400"
190-
>
191-
Go to parent product
192-
</Link>
193-
)}
194-
<h2 className="mt-4 mb-2 text-2xl font-semibold">Information</h2>
195-
<p>Inventory ID: {results.ID}</p>
196-
<p>Active: {results.IsActive}</p>
197-
<p>Approved: {results.Approved}</p>
198-
<p>Brand: {results.Brand}</p>
199-
<p>Barcode: {results.UPC}</p>
200-
<p>Store Price: {results.DefaultPrice}</p>
201-
<p>QTY On Hand: {results.AvailableSellQuantity}</p>
202-
{results.ParentSKU ? (
203-
<p>Product Type: Variant</p>
204-
) : childProducts.Item.length ? (
205-
<p>Product Type: Parent</p>
206-
) : (
207-
<p>Product Type: Standalone</p>
208-
)}
209-
</div>
210-
<div className="col-span-3 mt-4 mb-2">
211-
<h2 className="mt-4 mb-2 text-2xl font-semibold">Description</h2>
212-
<div className="prose prose-slate dark:prose-invert">
213-
{parse(results.Description)}
214-
</div>
215-
</div>
216-
{childProducts.Item.length > 0 && (
217-
<DemoVariants sku={results.SKU} variants={childProducts.Item} />
164+
const product = await getDemoProduct(params.product);
165+
if (product.Item.length) {
166+
const results = product.Item[0];
167+
let childProducts = await getDemoChildProducts(
168+
results.SKU,
169+
results.VariantInventoryIDs
170+
);
171+
172+
return (
173+
<section className="grid gap-4 grid-cols-3 max-w-screen-xl mx-3">
174+
<h2 className="col-span-3 text-2xl font-semibold mt-4 mb-2">
175+
Viewing Product SKU: {params.product}
176+
</h2>
177+
<Link href={`/demo/products`} className="col-span-3 text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
178+
<FontAwesomeIcon icon={faArrowLeft} />{" "}
179+
Go back to all products
180+
</Link>
181+
<div className="col-span-3 md:col-span-2">
182+
<Images sku={results.SKU} images={results.Images} />
183+
</div>
184+
<div className="col-span-3 md:col-span-1">
185+
<p className="text-4xl font-semibold">{results.Model}</p>
186+
<p>SKU: {results.SKU}</p>
187+
{results.ParentSKU && (
188+
<Link
189+
href={`/demo/products/${results.ParentSKU}`}
190+
className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400"
191+
>
192+
Go to parent product
193+
</Link>
218194
)}
219-
<div className="col-span-3 md:col-span-2 mt-4">
220-
<p>
221-
<Link href={`/demo/products`} className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
222-
Go back to all products
223-
</Link>{" "}
224-
or return to{" "}
225-
<Link href="/" className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
226-
Home
227-
</Link>
228-
</p>
229-
</div>
230-
<div className="col-span-3 md:col-span-1 md:mt-4 md:text-right">
231-
<p>
232-
<Link
233-
href={`//${WEBSTORE}/${results.ItemURL}`}
234-
className="font-medium text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400"
235-
>
236-
View On Webstore{" "}
237-
<FontAwesomeIcon icon={faArrowUpRightFromSquare} />
238-
</Link>
239-
</p>
195+
<h2 className="mt-4 mb-2 text-2xl font-semibold">Information</h2>
196+
<p>Inventory ID: {results.ID}</p>
197+
<p>Active: {results.IsActive}</p>
198+
<p>Approved: {results.Approved}</p>
199+
<p>Brand: {results.Brand}</p>
200+
<p>Barcode: {results.UPC}</p>
201+
<p>Store Price: {results.DefaultPrice}</p>
202+
<p>QTY On Hand: {results.AvailableSellQuantity}</p>
203+
{results.ParentSKU ? (
204+
<p>Product Type: Variant</p>
205+
) : childProducts.Item.length ? (
206+
<p>Product Type: Parent</p>
207+
) : (
208+
<p>Product Type: Standalone</p>
209+
)}
210+
</div>
211+
<div className="col-span-3 mt-4 mb-2">
212+
<h2 className="mt-4 mb-2 text-2xl font-semibold">Description</h2>
213+
<div className="prose prose-slate dark:prose-invert">
214+
{parse(results.Description)}
240215
</div>
241-
</section>
242-
);
243-
} else {
244-
return (
245-
<div>
246-
<p className="mt-6">Could not load SKU</p>
216+
</div>
217+
{childProducts.Item.length > 0 && (
218+
<DemoVariants sku={results.SKU} variants={childProducts.Item} />
219+
)}
220+
<div className="col-span-3 md:col-span-2 mt-4">
247221
<p>
248222
<Link href={`/demo/products`} className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
249223
Go back to all products
@@ -254,6 +228,33 @@ export default async function DemoProduct({
254228
</Link>
255229
</p>
256230
</div>
257-
);
258-
}
231+
<div className="col-span-3 md:col-span-1 md:mt-4 md:text-right">
232+
<p>
233+
<Link
234+
href={`//${WEBSTORE}/${results.ItemURL}`}
235+
className="font-medium text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400"
236+
>
237+
View On Webstore{" "}
238+
<FontAwesomeIcon icon={faArrowUpRightFromSquare} />
239+
</Link>
240+
</p>
241+
</div>
242+
</section>
243+
);
244+
} else {
245+
return (
246+
<div>
247+
<p className="mt-6">Could not load SKU</p>
248+
<p>
249+
<Link href={`/demo/products`} className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
250+
Go back to all products
251+
</Link>{" "}
252+
or return to{" "}
253+
<Link href="/" className="text-indigo-600 hover:text-indigo-500 dark:text-indigo-500 dark:hover:text-indigo-400">
254+
Home
255+
</Link>
256+
</p>
257+
</div>
258+
);
259+
}
259260
}

app/documentation/[slug]/page.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ export async function generateStaticParams() {
1111
}))
1212
}
1313

14-
export default function Documentation({
15-
params,
16-
}: {
17-
params: { slug: string }
18-
}) {
14+
export default async function Documentation(
15+
props: {
16+
params: Promise<{ slug: string }>
17+
}
18+
) {
19+
const params = await props.params;
1920
let page = getMarkdoc().find((page) => page.slug === params.slug)
20-
21+
2122
if (!page) {
2223
notFound()
2324
}
@@ -31,7 +32,7 @@ export async function generateStaticParams() {
3132
const renderedContent =
3233
!!page.content && Markdoc.renderers.react(page.content, React);
3334

34-
console.log(`Markdoc rendered`)
35+
console.log(`Markdoc rendered`)
3536
// console.log(renderedContent);
3637

3738
return (

app/neto/callback/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export async function POST(request: NextRequest) {
6565
console.log(`Store: ${text.store_id}`);
6666
console.log(`Hash: ${text.api_id}`);
6767

68-
const headersList = headers();
68+
const headersList = await headers();
6969
console.log(`headers:`);
7070
console.log(headersList);
7171
const verification_key = headersList.get("neto_verification_key");

app/neto/webhook/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export async function POST(request: NextRequest) {
2525
console.log(`Webhook order status: ${jsText.Event.Order.OrderStatus}`);
2626

2727
const order = jsText.Event.Order.OrderID;
28-
const headersList = headers();
28+
const headersList = await headers();
2929
const webstore_key = headersList.get("NETOAPI_KEY");
3030

3131
if (webstore_key === process.env.KEYLIME_GLOBAL_KEY) {

app/rerouter/page.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { auth } from "@/auth";
22
import { redirect } from "next/navigation";
33

4-
export default async function ReRouter({
5-
searchParams,
6-
}: {
7-
searchParams: { [key: string]: string | string[] | undefined };
8-
}) {
9-
4+
export default async function ReRouter(
5+
props: {
6+
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
7+
}
8+
) {
9+
const searchParams = await props.searchParams;
10+
1011
// used for initial login to ensure session exists before running through middleware
1112

1213
const session = await auth();

components/callback/login-form.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
"use client";
22

3+
import { useActionState } from "react";
34
import Link from "next/link";
45
import { redirect, useSearchParams } from "next/navigation";
56

6-
import { useFormState } from "react-dom";
7-
87
import { getWebstore } from "@/components/callback/form-action-webstore";
98
import { SubmitButton } from "@/components/callback/submit-button";
109

@@ -14,7 +13,7 @@ const initialState = {
1413
};
1514

1615
export default function LoginForm() {
17-
const [formState, formAction] = useFormState(getWebstore, initialState);
16+
const [formState, formAction] = useActionState(getWebstore, initialState);
1817

1918
const searchParams = useSearchParams();
2019
const hasType = searchParams.has("type");

0 commit comments

Comments
 (0)