From ba35e23810c9dd02989c82a3061c4499bdbff5a1 Mon Sep 17 00:00:00 2001 From: Gib Date: Wed, 25 Jun 2025 16:55:52 -0500 Subject: [PATCH] Continue working on Sign in with Apple button --- bun.lockb | Bin 367596 -> 367652 bytes package.json | 8 +- .../auth/buttons/client/SignInWithApple.tsx | 88 ++++++++++++++++++ .../default/forms/StatusMessage.tsx | 2 +- 4 files changed, 93 insertions(+), 5 deletions(-) diff --git a/bun.lockb b/bun.lockb index f87b3602e7622e4e263365012977bb9cfcdc5cd7..d2920a4c535107eb622632490036ec1d2a0b4be2 100755 GIT binary patch delta 34601 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 delta 34896 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 Wo>6JP&hw1yS_eERHDR7{{{IL4{Doxz diff --git a/package.json b/package.json index 9e76725..3f94dad 100644 --- a/package.json +++ b/package.json @@ -48,10 +48,10 @@ "@radix-ui/react-toggle": "^1.1.9", "@radix-ui/react-toggle-group": "^1.1.10", "@radix-ui/react-tooltip": "^1.2.7", - "@sentry/nextjs": "^9.31.0", + "@sentry/nextjs": "^9.32.0", "@supabase-cache-helpers/postgrest-react-query": "^1.13.4", "@supabase/ssr": "^0.6.1", - "@supabase/supabase-js": "^2.50.1", + "@supabase/supabase-js": "^2.50.2", "@t3-oss/env-nextjs": "^0.12.0", "@tanstack/react-query": "^5.81.2", "@tanstack/react-table": "^8.21.3", @@ -92,9 +92,9 @@ "eslint-config-next": "^15.3.4", "eslint-config-prettier": "^10.1.5", "eslint-plugin-drizzle": "^0.2.3", - "eslint-plugin-prettier": "^5.5.0", + "eslint-plugin-prettier": "^5.5.1", "postcss": "^8.5.6", - "prettier": "^3.6.0", + "prettier": "^3.6.1", "prettier-plugin-tailwindcss": "^0.6.13", "tailwindcss": "^4.1.10", "tw-animate-css": "^1.3.4", diff --git a/src/components/default/auth/buttons/client/SignInWithApple.tsx b/src/components/default/auth/buttons/client/SignInWithApple.tsx index 4d45f0c..3cff053 100644 --- a/src/components/default/auth/buttons/client/SignInWithApple.tsx +++ b/src/components/default/auth/buttons/client/SignInWithApple.tsx @@ -4,3 +4,91 @@ import { StatusMessage, SubmitButton } from '@/components/default/forms'; import { useAuth } from '@/lib/hooks/context'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; +import Image from 'next/image'; +import { type buttonVariants } from '@/components/ui'; +import { type ComponentProps } from 'react'; +import { type VariantProps } from 'class-variance-authority'; +import { useSupabaseClient } from '@/utils/supabase'; + +type ButtonProps = ComponentProps<'button'> & VariantProps; +type ImageProps = { + src: string; + alt: string; + className?: string; + width?: number; + height?: number; +} +type FormProps = ComponentProps<'form'>; +type TextProps = ComponentProps<'p'>; +type SignInWithAppleProps = { + buttonProps?: ButtonProps; + imageProps?: ImageProps; + formProps?: FormProps; + textProps?: TextProps; +}; + +export const SignInWithApple = ({ + buttonProps = { + className: 'w-full cursor-pointer', + type: 'submit', + }, + imageProps = { + src: '/icons/auth/apple.svg', + alt: 'Apple', + className: 'invert-75 dark:invert-25', + width: 24, + height: 24, + }, + formProps = { + className: 'my-4', + }, + textProps = { + className: 'text-[1.0rem]', + }, +} : SignInWithAppleProps) => { + const router = useRouter(); + const { loading, refreshUser } = useAuth(); + const [statusMessage, setStatusMessage] = useState(''); + const [ isLoading, setIsLoading ] = useState(false); + const supabase = useSupabaseClient(); + + const handleSignInWithApple = async (e: React.FormEvent) => { + e.preventDefault(); + try { + if (!supabase) throw new Error('Supabase client not found'); + setStatusMessage(''); + setIsLoading(true); + const result = await signInWithApple(supabase); + if (result.data.url) window.location.href = result.data.url; + else setStatusMessage(`There was a problem signing in with Apple!`); + } catch (error) { + setStatusMessage(`Error signing in: ${error as string}`); + } finally { + setIsLoading(false); + await refreshUser(); + router.push(''); + } + }; + + return ( +
+ +
+ {imageProps.alt} +

Sign In with Apple

+
+
+ {statusMessage && } + + ); +}; diff --git a/src/components/default/forms/StatusMessage.tsx b/src/components/default/forms/StatusMessage.tsx index 30fab4f..d1c7bdb 100644 --- a/src/components/default/forms/StatusMessage.tsx +++ b/src/components/default/forms/StatusMessage.tsx @@ -3,7 +3,7 @@ type Message = | { error: string} | { message: string} -export const StatusMessage = (message: Message) => { +export const StatusMessage = ({message}: {message: Message}) => { return (