From d346ae942ec15e3f37e178a47cb1525c67d376c6 Mon Sep 17 00:00:00 2001 From: LobeTia Date: Wed, 24 Apr 2024 14:47:26 +0200 Subject: [PATCH] Lint fixed --- src/app/actions/createMembership.ts | 49 +++++++-------- src/app/actions/types.ts | 2 +- .../@authenticated/membership/manage/form.tsx | 52 ++++++++-------- .../admin/@authenticated/membership/page.tsx | 2 +- .../components/discordSignIn.tsx | 8 +-- src/app/admin/layout.tsx | 28 ++++----- src/app/devPage.tsx | 14 ++--- src/app/members/@authenticated/page.tsx | 6 +- src/app/page.tsx | 10 ++-- src/app/signup/page.tsx | 60 +++++++++---------- 10 files changed, 114 insertions(+), 117 deletions(-) diff --git a/src/app/actions/createMembership.ts b/src/app/actions/createMembership.ts index 0acc5cf..8792a8e 100644 --- a/src/app/actions/createMembership.ts +++ b/src/app/actions/createMembership.ts @@ -1,21 +1,18 @@ -"use server"; +"use server" -import { MembershipStatus } from "@prisma/client"; +import { MembershipStatus } from "@prisma/client" -import { - type ServerActionState, - ServerActionStatus, -} from "@/app/actions/types"; -import { db } from "@/services/db"; -import { stripe } from "@/services/stripe"; +import { type ServerActionState, ServerActionStatus } from "@/app/actions/types" +import { db } from "@/services/db" +import { stripe } from "@/services/stripe" -const MEMBERSHIP_PRICE_ID = "price_1P3HNlCXdJySzBrwlcoAQqS2"; +const MEMBERSHIP_PRICE_ID = "price_1P3HNlCXdJySzBrwlcoAQqS2" export interface FormProps { - email: string; - firstName: string; - lastName: string; - socialSecurityNumber: string; + email: string + firstName: string + lastName: string + socialSecurityNumber: string } export async function createMembership( @@ -23,14 +20,14 @@ export async function createMembership( data: FormProps, ): Promise { // Avoid double membership creation - if (prevState.nextStep === "providePayment") return prevState; + if (prevState.nextStep === "providePayment") return prevState // Check for user let user = await db.user.findFirst({ where: { email: data.email, }, - }); + }) // No User found, creates it if (!user) { @@ -41,7 +38,7 @@ export async function createMembership( emailVerified: new Date(), name: `${data.firstName} ${data.lastName}`.trim(), }, - }); + }) } // User is not linked to Stripe, creates it @@ -50,13 +47,13 @@ export async function createMembership( const stripeCustomer = await stripe.customers.create({ email: data.email, name: `${data.firstName} ${data.lastName}`.trim(), - }); + }) - user.stripeCustomerId = stripeCustomer.id; + user.stripeCustomerId = stripeCustomer.id await db.user.update({ data: { stripeCustomerId: stripeCustomer.id }, where: { id: user.id }, - }); + }) } // Lookup for membership @@ -67,7 +64,7 @@ export async function createMembership( }, userId: user.id, }, - }); + }) // Membership already exists, block creation if (membership) { @@ -78,7 +75,7 @@ export async function createMembership( }, ], status: ServerActionStatus.Error, - }; + } } // Creates membership @@ -88,7 +85,7 @@ export async function createMembership( status: MembershipStatus.PENDING, userId: user.id, }, - }); + }) // Create Stripe subscription const stripeSubscription = await stripe.subscriptions.create({ @@ -103,14 +100,14 @@ export async function createMembership( payment_settings: { payment_method_types: ["card", "link", "paypal", "sepa_debit"], }, - }); + }) // Update membership - membership.stripeSubscriptionId = stripeSubscription.id; + membership.stripeSubscriptionId = stripeSubscription.id await db.membership.update({ data: { stripeSubscriptionId: stripeSubscription.id }, where: { id: membership.id }, - }); + }) // Return secret to client to finalize payment return { @@ -121,5 +118,5 @@ export async function createMembership( membershipId: membership.id, }, status: ServerActionStatus.Success, - }; + } } diff --git a/src/app/actions/types.ts b/src/app/actions/types.ts index ecdfaad..8d38e53 100644 --- a/src/app/actions/types.ts +++ b/src/app/actions/types.ts @@ -19,4 +19,4 @@ export enum ServerActionStatus { export const InitialServerActionState = { payload: {}, status: ServerActionStatus.Pending, -}; +} diff --git a/src/app/admin/@authenticated/membership/manage/form.tsx b/src/app/admin/@authenticated/membership/manage/form.tsx index b4e8f42..973fcb7 100644 --- a/src/app/admin/@authenticated/membership/manage/form.tsx +++ b/src/app/admin/@authenticated/membership/manage/form.tsx @@ -1,8 +1,8 @@ -"use client"; +"use client" -import { useForm } from "react-hook-form"; -import { z } from "zod"; -import { zodResolver } from "@hookform/resolvers/zod"; +import { useForm } from "react-hook-form" +import { z } from "zod" +import { zodResolver } from "@hookform/resolvers/zod" import { Form, FormControl, @@ -10,26 +10,26 @@ import { FormItem, FormLabel, FormMessage, -} from "@/components/ui/form"; -import { Input } from "@/components/ui/input"; -import { Textarea } from "@/components/ui/textarea"; -import { StatefulButton } from "@/components/molecules/statefulButton"; -import { useFormState } from "react-dom"; +} from "@/components/ui/form" +import { Input } from "@/components/ui/input" +import { Textarea } from "@/components/ui/textarea" +import { StatefulButton } from "@/components/molecules/statefulButton" +import { useFormState } from "react-dom" import { InitialServerActionState, ServerActionStatus, -} from "@/app/actions/types"; -import { createMembershipTemplate } from "@/app/actions/createMembershipTemplate"; +} from "@/app/actions/types" +import { createMembershipTemplate } from "@/app/actions/createMembershipTemplate" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select"; -import { CRUDFormIntent } from "@/modules/crudForm/types"; -import { editMembershipTemplate } from "@/app/actions/editMembershipTemplate"; -import { useEffect, useState } from "react"; +} from "@/components/ui/select" +import { CRUDFormIntent } from "@/modules/crudForm/types" +import { editMembershipTemplate } from "@/app/actions/editMembershipTemplate" +import { useEffect, useState } from "react" const formSchema = z.object({ id: z.string().optional(), @@ -44,12 +44,12 @@ const formSchema = z.object({ new RegExp("^price_[0-9A-Za-z]+$"), "You need to provide a Stripe Product Price ID, format: price_xxxxx", ), -}); +}) interface FormProps { - intent: CRUDFormIntent; - previousValues?: any; - onSuccess?: any; + intent: CRUDFormIntent + previousValues?: any + onSuccess?: any } export function AdminMembershipCRUDForm({ @@ -62,8 +62,8 @@ export function AdminMembershipCRUDForm({ ? createMembershipTemplate : editMembershipTemplate, InitialServerActionState, - ); - const [onSuccessFired, setOnSuccessFired] = useState(false); + ) + const [onSuccessFired, setOnSuccessFired] = useState(false) const form = useForm>({ defaultValues: @@ -75,7 +75,7 @@ export function AdminMembershipCRUDForm({ priceAmount: previousValues.priceAmount / 100, }, resolver: zodResolver(formSchema), - }); + }) useEffect(() => { if ( @@ -83,10 +83,10 @@ export function AdminMembershipCRUDForm({ onSuccess && !onSuccessFired ) { - onSuccess(membershipTemplateState); - setOnSuccessFired(true); + onSuccess(membershipTemplateState) + setOnSuccessFired(true) } - }, [membershipTemplateState, onSuccess, onSuccessFired]); + }, [membershipTemplateState, onSuccess, onSuccessFired]) return (
@@ -207,5 +207,5 @@ export function AdminMembershipCRUDForm({
- ); + ) } diff --git a/src/app/admin/@authenticated/membership/page.tsx b/src/app/admin/@authenticated/membership/page.tsx index 57a1906..934d412 100644 --- a/src/app/admin/@authenticated/membership/page.tsx +++ b/src/app/admin/@authenticated/membership/page.tsx @@ -1,4 +1,4 @@ -import { Paragraph } from "@/components/ui/typography"; +import { Paragraph } from "@/components/ui/typography" export default async function AdminMembershipPage() { return ( diff --git a/src/app/admin/@unauthenticated/components/discordSignIn.tsx b/src/app/admin/@unauthenticated/components/discordSignIn.tsx index efebfce..6b17908 100644 --- a/src/app/admin/@unauthenticated/components/discordSignIn.tsx +++ b/src/app/admin/@unauthenticated/components/discordSignIn.tsx @@ -1,7 +1,7 @@ -"use client"; +"use client" -import { signIn } from "next-auth/react"; -import { DiscordLogoIcon } from "@radix-ui/react-icons"; +import { signIn } from "next-auth/react" +import { DiscordLogoIcon } from "@radix-ui/react-icons" export function DiscordSignIn() { return ( @@ -14,5 +14,5 @@ export function DiscordSignIn() { Sign in with Discord - ); + ) } diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx index f11d95c..b8bc835 100644 --- a/src/app/admin/layout.tsx +++ b/src/app/admin/layout.tsx @@ -12,7 +12,7 @@ import { CardFooter, CardHeader, CardTitle, -} from "@/components/ui/card"; +} from "@/components/ui/card" import { DropdownMenu, DropdownMenuContent, @@ -20,33 +20,33 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu"; -import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; -import logo from "@/images/logo.svg"; -import { hasRequiredRole } from "@/lib/permissions"; -import { usernameToInitials } from "@/lib/utils"; -import { getServerAuthSession } from "@/server/auth"; -import { Toaster } from "@/components/ui/toaster"; +} from "@/components/ui/dropdown-menu" +import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet" +import logo from "@/images/logo.svg" +import { hasRequiredRole } from "@/lib/permissions" +import { usernameToInitials } from "@/lib/utils" +import { getServerAuthSession } from "@/server/auth" +import { Toaster } from "@/components/ui/toaster" interface LayoutInterface { - children: React.ReactNode; - authenticated: React.ReactNode; - unauthenticated: React.ReactNode; + children: React.ReactNode + authenticated: React.ReactNode + unauthenticated: React.ReactNode } export default async function Layout({ authenticated, unauthenticated, }: LayoutInterface) { - const session = await getServerAuthSession(); - const isLoggedIn = session !== null; + const session = await getServerAuthSession() + const isLoggedIn = session !== null if (!isLoggedIn) { return (
{unauthenticated}
- ); + ) } if (!hasRequiredRole(UserRole.admin, session)) { diff --git a/src/app/devPage.tsx b/src/app/devPage.tsx index 80f37da..60f2035 100644 --- a/src/app/devPage.tsx +++ b/src/app/devPage.tsx @@ -1,13 +1,13 @@ -import { toPlainObject } from "lodash"; -import Link from "next/link"; +import { toPlainObject } from "lodash" +import Link from "next/link" -import { Debug } from "@/components/devtool/debug"; -import { Button } from "@/components/ui/button"; -import { getServerAuthSession } from "@/server/auth"; -import { env } from "@/env"; +import { Debug } from "@/components/devtool/debug" +import { Button } from "@/components/ui/button" +import { getServerAuthSession } from "@/server/auth" +import { env } from "@/env" export async function DevPage() { - const session = await getServerAuthSession(); + const session = await getServerAuthSession() return (
diff --git a/src/app/members/@authenticated/page.tsx b/src/app/members/@authenticated/page.tsx index ee5c4c9..039aa76 100644 --- a/src/app/members/@authenticated/page.tsx +++ b/src/app/members/@authenticated/page.tsx @@ -2,9 +2,9 @@ import { MembershipCard, PricePeriod, PriceUnit, -} from "@/components/molecules/membershipCard"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { getServerAuthSession } from "@/server/auth"; +} from "@/components/molecules/membershipCard" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { getServerAuthSession } from "@/server/auth" export default async function MembershipPortalHomePage() { const session = await getServerAuthSession() diff --git a/src/app/page.tsx b/src/app/page.tsx index 20e84a7..4313ff9 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,9 +1,9 @@ -import { redirect, RedirectType } from "next/navigation"; +import { redirect, RedirectType } from "next/navigation" -import { DevPage } from "@/app/devPage"; -import { inDevEnvironment } from "@/lib/envs"; +import { DevPage } from "@/app/devPage" +import { inDevEnvironment } from "@/lib/envs" export default async function HomePage() { - if (inDevEnvironment) return ; - else redirect("/members", RedirectType.replace); + if (inDevEnvironment) return + else redirect("/members", RedirectType.replace) } diff --git a/src/app/signup/page.tsx b/src/app/signup/page.tsx index f5f5178..e45a2ba 100644 --- a/src/app/signup/page.tsx +++ b/src/app/signup/page.tsx @@ -18,17 +18,17 @@ import { z } from "zod" import { createMembership, type FormProps, -} from "@/app/actions/createMembership"; -import type { ServerActionState } from "@/app/actions/types"; -import { ServerActionStatus } from "@/app/actions/types"; +} from "@/app/actions/createMembership" +import type { ServerActionState } from "@/app/actions/types" +import { ServerActionStatus } from "@/app/actions/types" import { MembershipCard, PricePeriod, PriceUnit, -} from "@/components/molecules/membershipCard"; -import { StatefulButton } from "@/components/molecules/statefulButton"; -import { Button } from "@/components/ui/button"; -import { Checkbox } from "@/components/ui/checkbox"; +} from "@/components/molecules/membershipCard" +import { StatefulButton } from "@/components/molecules/statefulButton" +import { Button } from "@/components/ui/button" +import { Checkbox } from "@/components/ui/checkbox" import { Form, FormControl, @@ -59,11 +59,11 @@ const formSchema = z.object({ statuteApproval: z.boolean().refine((val) => val, { message: "Please read and accept the statute", }), -}); +}) const stripePromise = loadStripe( process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY!, -); +) export default function SignupPage() { const [createMembershipState, createMembershipAction] = useFormState( @@ -72,7 +72,7 @@ export default function SignupPage() { payload: {}, status: ServerActionStatus.Pending, }, - ); + ) const form = useForm>({ defaultValues: { @@ -83,27 +83,27 @@ export default function SignupPage() { statuteApproval: false, }, resolver: zodResolver(formSchema), - }); + }) const handleForm = async (data: FormProps) => { if (createMembershipState.nextStep === "confirmPayment") { } else { - createMembershipAction(data); + createMembershipAction(data) } - }; - const [step, setStep] = useState(1); + } + const [step, setStep] = useState(1) const validateStep1 = async (): Promise => { - const stepIsValid = await form.trigger(["firstName", "lastName", "email"]); - if (stepIsValid) setStep(2); - }; + const stepIsValid = await form.trigger(["firstName", "lastName", "email"]) + if (stepIsValid) setStep(2) + } const validateStep2 = async (): Promise => { const stepIsValid = await form.trigger([ "socialSecurityNumber", "statuteApproval", - ]); - if (stepIsValid) setStep(3); - }; + ]) + if (stepIsValid) setStep(3) + } return (
@@ -339,30 +339,30 @@ export default function SignupPage() {
- ); + ) } interface Step4Props { - state: ServerActionState; - setStep: Dispatch>; + state: ServerActionState + setStep: Dispatch> } function Step4({ state, setStep }: Step4Props) { - const stripe = useStripe(); - const elements = useElements(); + const stripe = useStripe() + const elements = useElements() const handlePaymentSubmit = async () => { - await elements?.submit(); + await elements?.submit() const confirmPayment = await stripe?.confirmPayment({ clientSecret: (state?.payload as any)?.clientSecret, elements: elements!, redirect: "if_required", - }); - console.log(confirmPayment); + }) + console.log(confirmPayment) if ((confirmPayment?.paymentIntent as any)?.status === "succeeded") { - setStep(5); + setStep(5) } - }; + } return (