From c0e6800a6801df685c89adcc066423f4aa3fb1d1 Mon Sep 17 00:00:00 2001 From: CLong Lam <86845927+clonglam@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:15:14 -0800 Subject: [PATCH] Refatory Spinner --- scripts/fetchGraphQLSchema.js | 2 - src/_actions/authAdmin.ts | 1 - src/_actions/products.ts | 3 -- src/app/(admin)/admin/users/page.tsx | 1 - src/app/(admin)/layout.tsx | 5 ++- src/app/(store)/orders/page.tsx | 1 - src/app/api/create-checkout-session/route.ts | 1 - src/app/api/medias/route.ts | 5 --- src/app/api/webhook/route.ts | 10 +---- .../admin/media/FeaturedImageField.tsx | 5 --- src/components/admin/media/ImageDialog.tsx | 8 ++-- .../admin/media/UpdateMediaForm.tsx | 3 +- src/components/admin/products/ProductForm.tsx | 4 +- src/components/admin/users/AdminUserForm.tsx | 5 +-- src/components/admin/users/UpdateUserForm.tsx | 4 +- src/components/auth/OAuthLoginButtons.tsx | 21 ++++------- src/components/auth/SigninForm.tsx | 6 +-- src/components/cart/AddToCartButton.tsx | 1 - src/components/cart/CheckoutButton.tsx | 24 ++++++++---- src/components/ui/spinner.tsx | 37 +++++++++++++++++++ 20 files changed, 79 insertions(+), 68 deletions(-) create mode 100644 src/components/ui/spinner.tsx diff --git a/scripts/fetchGraphQLSchema.js b/scripts/fetchGraphQLSchema.js index bbfe76f..3c2491a 100644 --- a/scripts/fetchGraphQLSchema.js +++ b/scripts/fetchGraphQLSchema.js @@ -50,8 +50,6 @@ function fetchGraphQLSchema(url, options) { const filePath = path.join(__dirname, "../graphql/schema/", "schema.graphql") -console.log() - console.log( supagradient( `🗞 Fetching GraphQL Schema from ${process.env.SUPABASE_PROJECT_REF} ...` diff --git a/src/_actions/authAdmin.ts b/src/_actions/authAdmin.ts index 10306ef..5df9fcd 100644 --- a/src/_actions/authAdmin.ts +++ b/src/_actions/authAdmin.ts @@ -17,7 +17,6 @@ export const getUser = async ({ userId }: { userId: string }) => { const { data, error } = await adminAuthClient.getUserById(userId) return data } catch (err) { - console.log(err) throw new Error("There is an error") } } diff --git a/src/_actions/products.ts b/src/_actions/products.ts index 9e24af7..4569487 100644 --- a/src/_actions/products.ts +++ b/src/_actions/products.ts @@ -42,7 +42,6 @@ type SearchProductsActionProps = { export async function searchProductsAction(data: SearchProductsActionProps) { const validate = SearchProductActionSchema.safeParse(data) - console.log("valu", validate) if (!validate.success) throw new Error("Invalid input.") const { query, sort, limit = 15 } = data @@ -77,7 +76,6 @@ export async function searchProductsAction(data: SearchProductsActionProps) { } } export const createProductAction = async (product: InsertProducts) => { - console.log("product", product) createInsertSchema(products).parse(product) const data = await db.insert(products).values(product).returning() return data @@ -94,7 +92,6 @@ export const updateProductAction = async ( .where(eq(products.id, productId)) .returning() - console.log("insertedProduct", insertedProduct) return insertedProduct } diff --git a/src/app/(admin)/admin/users/page.tsx b/src/app/(admin)/admin/users/page.tsx index 3233e6f..9dc664b 100644 --- a/src/app/(admin)/admin/users/page.tsx +++ b/src/app/(admin)/admin/users/page.tsx @@ -13,7 +13,6 @@ type AdminUsersPageProps = { async function UsersPage({ searchParams }: AdminUsersPageProps) { const currentUser = await getCurrentUser() - if (currentUser.role !== "ADMIN") console.log("you are not admin.") const users = await listUsers({}) diff --git a/src/app/(admin)/layout.tsx b/src/app/(admin)/layout.tsx index 5d26bab..38f8f1d 100644 --- a/src/app/(admin)/layout.tsx +++ b/src/app/(admin)/layout.tsx @@ -9,8 +9,9 @@ type Props = { children: ReactNode } async function AdminLayout({ children }: Props) { const currentUser = await getCurrentUser() - if (!currentUser || currentUser.role !== "ADMIN") redirect(`/sign-in`) - // TODO: Attach the error at the end of the url + if (!currentUser || currentUser.role !== "ADMIN") + redirect(`/sign-in?error=Only authenticated users can access`) + // TODO: confirm can This error message displaty return (
diff --git a/src/app/(store)/orders/page.tsx b/src/app/(store)/orders/page.tsx index 56d9b1e..d6b13e5 100644 --- a/src/app/(store)/orders/page.tsx +++ b/src/app/(store)/orders/page.tsx @@ -46,7 +46,6 @@ async function OrderPage() { userId: user.id, }) - console.log("error", error) if (!data) return notFound() return ( diff --git a/src/app/api/create-checkout-session/route.ts b/src/app/api/create-checkout-session/route.ts index c563b17..aa0fb3b 100644 --- a/src/app/api/create-checkout-session/route.ts +++ b/src/app/api/create-checkout-session/route.ts @@ -91,7 +91,6 @@ export async function POST(request: Request) { return NextResponse.json({ sessionId: session.id }) } catch (err) { - console.log("err", err) return new NextResponse("Internal Error", { status: 500 }) } } diff --git a/src/app/api/medias/route.ts b/src/app/api/medias/route.ts index b27b539..5cf4195 100644 --- a/src/app/api/medias/route.ts +++ b/src/app/api/medias/route.ts @@ -33,7 +33,6 @@ export async function POST(request: NextRequest) { Body: Buffer.from(await file.arrayBuffer()), ContentType: file.type, } - console.log("params.Key", params.Key) try { const s3Response = await uploadImage(params) if (s3Response) { @@ -41,19 +40,15 @@ export async function POST(request: NextRequest) { .insert(medias) .values({ alt: file.name, key: params.Key }) .returning() - console.log("insertedMedia", insertedMedia) return { index, medias: insertedMedia } } return null } catch (err) { - console.log("error", err) return null } }) ) - console.log("uploadResponse", uploadResponse) - return NextResponse.json(uploadResponse, { status: 201 }) } diff --git a/src/app/api/webhook/route.ts b/src/app/api/webhook/route.ts index e19d013..2b0dedb 100644 --- a/src/app/api/webhook/route.ts +++ b/src/app/api/webhook/route.ts @@ -1,12 +1,11 @@ import { env } from "@/env.mjs" import { stripe } from "@/lib/stripe" import db from "@/lib/supabase/db" -import { InsertOrders, PaymentStatus, orders } from "@/lib/supabase/schema" +import { PaymentStatus, address, orders } from "@/lib/supabase/schema" +import { eq } from "drizzle-orm" import { headers } from "next/headers" import { NextRequest, NextResponse } from "next/server" import Stripe from "stripe" -import { address } from "@/lib/supabase/schema" -import { eq } from "drizzle-orm" const relevantEvents = new Set([ "product.created", @@ -72,8 +71,6 @@ export async function POST(request: NextRequest) { }) .where(eq(orders.id, checkoutSession.client_reference_id)) .returning() - - console.log("insertedOrder", updatedOrder) } else { const insertedOrder = await db .update(orders) @@ -85,12 +82,9 @@ export async function POST(request: NextRequest) { }) .where(eq(orders.id, checkoutSession.client_reference_id)) .returning() - - console.log("insertedOrder", insertedOrder) } break default: - console.log("") throw new Error("Unhandled relevant event!") } } catch (error) { diff --git a/src/components/admin/media/FeaturedImageField.tsx b/src/components/admin/media/FeaturedImageField.tsx index ea017e2..8e63aac 100644 --- a/src/components/admin/media/FeaturedImageField.tsx +++ b/src/components/admin/media/FeaturedImageField.tsx @@ -18,7 +18,6 @@ export const FeaturedImageField: FC<{ fetch(`/medias/${defaultValue}`) .then((res) => res.json()) .then((data) => { - console.log("PreviewfileUrl", data) setPreviewUrl(data.preview) }) .catch((err) => { @@ -29,8 +28,6 @@ export const FeaturedImageField: FC<{ const onDrop = useCallback( async (acceptedFiles: FileWithPath[]) => { - console.log("acceptedFiles", acceptedFiles) - if (acceptedFiles.length > 0) { const id = nanoid() const formData = new FormData() @@ -46,8 +43,6 @@ export const FeaturedImageField: FC<{ data: { imageUrl: string; featuredId: string } preview: string } - - console.log("json", json) setValue(name, json.data.featuredId) setPreviewUrl(json.preview) } diff --git a/src/components/admin/media/ImageDialog.tsx b/src/components/admin/media/ImageDialog.tsx index 458a83b..e795500 100644 --- a/src/components/admin/media/ImageDialog.tsx +++ b/src/components/admin/media/ImageDialog.tsx @@ -55,7 +55,7 @@ function ImageDialog({ } const onDrop = async (acceptedFiles: FileWithPath[]) => { - console.log("Recieved data", acceptedFiles) + // console.log("Recieved data", acceptedFiles) const uploadFiles = acceptedFiles.map((file) => Object.assign(file, { @@ -79,7 +79,7 @@ function ImageDialog({ media: SelectMedia }[] - console.log("CLient Recieved Data", data) + // console.log("CLient Recieved Data", data) if (data) { // setUploadedFilesUrls(data.uploadedFilesUrls) } @@ -109,9 +109,7 @@ function ImageDialog({ {value ? ( { - console.log("") - }} + onClick={() => {}} mediaId={value} /> ) : ( diff --git a/src/components/admin/media/UpdateMediaForm.tsx b/src/components/admin/media/UpdateMediaForm.tsx index d720b8c..304994b 100644 --- a/src/components/admin/media/UpdateMediaForm.tsx +++ b/src/components/admin/media/UpdateMediaForm.tsx @@ -55,6 +55,7 @@ import { AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog" +import Spinner from "@/components/ui/spinner" type UpdateMediaFormProps = { media?: SelectMedia @@ -161,7 +162,7 @@ function UpdateMediaForm({ media }: UpdateMediaFormProps) { ) } diff --git a/src/components/ui/spinner.tsx b/src/components/ui/spinner.tsx new file mode 100644 index 0000000..1908593 --- /dev/null +++ b/src/components/ui/spinner.tsx @@ -0,0 +1,37 @@ +import React from "react" +import { cn } from "@/lib/utils" + +interface SpinnerProps + extends React.DetailedHTMLProps< + React.HTMLAttributes, + HTMLDivElement + > {} + +function Spinner({ className, ...props }: SpinnerProps) { + return ( +
+ + Loading... +
+ ) +} + +export default Spinner