MCPcopy Create free account
hub / github.com/ShipSecAI/studio / AuthModal

Function AuthModal

frontend/src/components/auth/AuthModal.tsx:15–104  ·  view source on GitHub ↗
({
  isOpen,
  onClose,
  defaultMode = 'signin',
  afterSignInUrl,
  afterSignUpUrl,
})

Source from the content-addressed store, hash-verified

13}
14
15export const AuthModal: React.FC<AuthModalProps> = ({
16 isOpen,
17 onClose,
18 defaultMode = 'signin',
19 afterSignInUrl,
20 afterSignUpUrl,
21}) => {
22 const [mode, setMode] = useState<'signin' | 'signup'>(defaultMode);
23 const authProvider = useAuthProvider();
24
25 const handleModeChange = (newMode: 'signin' | 'signup') => {
26 setMode(newMode);
27 };
28
29 const handleClose = () => {
30 onClose();
31 // Reset mode when modal closes
32 setMode(defaultMode);
33 };
34
35 const SignInComponent = authProvider.SignInComponent;
36 const SignUpComponent = authProvider.SignUpComponent;
37
38 return (
39 <Dialog open={isOpen} onOpenChange={handleClose}>
40 <DialogContent className="sm:max-w-[425px]">
41 <DialogHeader>
42 <DialogTitle className="text-center">
43 {mode === 'signin' ? 'Welcome Back' : 'Create Account'}
44 </DialogTitle>
45 </DialogHeader>
46
47 <Tabs
48 value={mode}
49 onValueChange={(value) => handleModeChange(value as 'signin' | 'signup')}
50 >
51 <TabsList className="grid w-full grid-cols-2">
52 <TabsTrigger value="signin">Sign In</TabsTrigger>
53 <TabsTrigger value="signup">Sign Up</TabsTrigger>
54 </TabsList>
55
56 <TabsContent value="signin" className="mt-6">
57 <div className="space-y-4">
58 {authProvider.name === 'clerk' ? (
59 <SignInComponent afterSignInUrl={afterSignInUrl} />
60 ) : (
61 <div className="text-center py-8">
62 <p className="text-muted-foreground mb-4">
63 Sign in is not available with the current auth provider
64 </p>
65 <p className="text-sm text-muted-foreground">
66 Provider:{' '}
67 <code className="bg-muted px-2 py-1 rounded">{authProvider.name}</code>
68 </p>
69 </div>
70 )}
71 </div>
72 </TabsContent>

Callers

nothing calls this directly

Calls 2

useAuthProviderFunction · 0.85
handleModeChangeFunction · 0.85

Tested by

no test coverage detected