@riligar/auth-react 1.33.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +170 -27
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +168 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3,9 +3,9 @@ import { useMemo, useEffect, createContext, useState, useRef } from 'react';
|
|
|
3
3
|
import { useShallow } from 'zustand/react/shallow';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { Navigate, Outlet, useNavigate } from 'react-router-dom';
|
|
6
|
-
import { Modal, Stack, Text, Image, Title, Paper, TextInput, PasswordInput, Anchor, Button, Divider, Group, Center, Loader, Box, Avatar, Collapse, FileButton, Tooltip, ThemeIcon, Badge } from '@mantine/core';
|
|
6
|
+
import { Modal, Stack, Text, Image, Title, Paper, TextInput, PasswordInput, Anchor, Button, Divider, Group, Center, Loader, Box, Avatar, Collapse, FileButton, Tooltip, ThemeIcon, Badge, rem, ActionIcon } from '@mantine/core';
|
|
7
7
|
import { useForm } from '@mantine/form';
|
|
8
|
-
import { IconMail, IconLock, IconArrowRight, IconBrandGoogle, IconBrandGithub, IconUser, IconSend, IconCheck, IconX, IconRefresh, IconPhoto, IconTrash, IconPencil, IconShield, IconKey, IconDevices, IconDeviceMobile, IconLogout, IconUserCircle } from '@tabler/icons-react';
|
|
8
|
+
import { IconMail, IconLock, IconArrowRight, IconBrandGoogle, IconBrandGithub, IconUser, IconSend, IconCheck, IconX, IconRefresh, IconPhoto, IconTrash, IconPencil, IconShield, IconKey, IconDevices, IconDeviceMobile, IconLogout, IconUserCircle, IconSettings, IconCreditCard, IconShieldCheck } from '@tabler/icons-react';
|
|
9
9
|
|
|
10
10
|
// Config - API Base URL fixa para o serviço de autenticação
|
|
11
11
|
let API_BASE = 'https://manager.myauth.click';
|
|
@@ -366,35 +366,27 @@ const useAuthStore = create((set, get) => ({
|
|
|
366
366
|
},
|
|
367
367
|
/* Init ao montar o Provider */
|
|
368
368
|
init: async () => {
|
|
369
|
-
const {
|
|
370
|
-
fetchApplicationInfo
|
|
371
|
-
} = get();
|
|
372
369
|
try {
|
|
373
|
-
//
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
370
|
+
// Busca a sessão (que agora também traz applicationInfo)
|
|
371
|
+
const sessionData = await getSession();
|
|
372
|
+
|
|
373
|
+
// Se veio aplicação no redirecionamento/sessão, salva no store
|
|
374
|
+
if (sessionData?.application) {
|
|
375
|
+
set({
|
|
376
|
+
applicationInfo: sessionData.application
|
|
377
|
+
});
|
|
377
378
|
}
|
|
378
379
|
let user = null;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
if (sessionData?.session) {
|
|
388
|
-
set({
|
|
389
|
-
currentSession: sessionData.session
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
} catch (sessionError) {
|
|
393
|
-
// Se falhar (401), continua para verificar localStorage token
|
|
394
|
-
console.log('[AuthStore] Server session not found, checking local token');
|
|
380
|
+
if (sessionData?.user) {
|
|
381
|
+
user = sessionData.user;
|
|
382
|
+
}
|
|
383
|
+
if (sessionData?.session) {
|
|
384
|
+
set({
|
|
385
|
+
currentSession: sessionData.session
|
|
386
|
+
});
|
|
395
387
|
}
|
|
396
388
|
|
|
397
|
-
//
|
|
389
|
+
// Se não encontrou sessão via cookies, verifica localStorage token (JWT)
|
|
398
390
|
if (!user && isAuthenticated()) {
|
|
399
391
|
user = getCurrentUser();
|
|
400
392
|
}
|
|
@@ -2971,6 +2963,157 @@ function UserProfile({
|
|
|
2971
2963
|
});
|
|
2972
2964
|
}
|
|
2973
2965
|
|
|
2966
|
+
function UserInformation({
|
|
2967
|
+
user,
|
|
2968
|
+
signOut,
|
|
2969
|
+
onAccountClick,
|
|
2970
|
+
onBillingClick,
|
|
2971
|
+
accountLabel = 'Conta',
|
|
2972
|
+
billingLabel = 'Assinatura',
|
|
2973
|
+
padded = true,
|
|
2974
|
+
size = 'sm',
|
|
2975
|
+
style,
|
|
2976
|
+
...others
|
|
2977
|
+
}) {
|
|
2978
|
+
if (!user) return null;
|
|
2979
|
+
|
|
2980
|
+
// Size mappings
|
|
2981
|
+
const avatarSizeMap = {
|
|
2982
|
+
sm: 32,
|
|
2983
|
+
md: 40,
|
|
2984
|
+
lg: 48
|
|
2985
|
+
};
|
|
2986
|
+
const fontSizeTitleMap = {
|
|
2987
|
+
sm: 'sm',
|
|
2988
|
+
md: 'md',
|
|
2989
|
+
lg: 'lg'
|
|
2990
|
+
};
|
|
2991
|
+
const fontSizeEmailMap = {
|
|
2992
|
+
sm: '10px',
|
|
2993
|
+
md: 'xs',
|
|
2994
|
+
lg: 'sm'
|
|
2995
|
+
};
|
|
2996
|
+
const btnSizeMap = {
|
|
2997
|
+
sm: 'xs',
|
|
2998
|
+
md: 'sm',
|
|
2999
|
+
lg: 'md'
|
|
3000
|
+
};
|
|
3001
|
+
const gapMap = {
|
|
3002
|
+
sm: 'xs',
|
|
3003
|
+
md: 'sm',
|
|
3004
|
+
lg: 'md'
|
|
3005
|
+
};
|
|
3006
|
+
const widthMap = {
|
|
3007
|
+
sm: 280,
|
|
3008
|
+
md: 320,
|
|
3009
|
+
lg: 400
|
|
3010
|
+
};
|
|
3011
|
+
const name = user.fullName || user.name || 'User';
|
|
3012
|
+
const email = user.primaryEmailAddress || user.email || '';
|
|
3013
|
+
const initials = name.split(' ').map(n => n[0]).join('').toUpperCase().slice(0, 2);
|
|
3014
|
+
return /*#__PURE__*/jsx(Box, {
|
|
3015
|
+
p: padded ? gapMap[size] : 0,
|
|
3016
|
+
w: widthMap[size],
|
|
3017
|
+
style: style,
|
|
3018
|
+
...others,
|
|
3019
|
+
children: /*#__PURE__*/jsxs(Stack, {
|
|
3020
|
+
gap: gapMap[size],
|
|
3021
|
+
children: [/*#__PURE__*/jsxs(Group, {
|
|
3022
|
+
wrap: "nowrap",
|
|
3023
|
+
gap: "xs",
|
|
3024
|
+
children: [/*#__PURE__*/jsx(Avatar, {
|
|
3025
|
+
src: user.imageUrl || user.image,
|
|
3026
|
+
size: avatarSizeMap[size],
|
|
3027
|
+
radius: "xl",
|
|
3028
|
+
bg: "gray.1",
|
|
3029
|
+
c: "gray.6",
|
|
3030
|
+
styles: {
|
|
3031
|
+
placeholder: {
|
|
3032
|
+
fontSize: rem(avatarSizeMap[size] / 2.2),
|
|
3033
|
+
fontWeight: 600
|
|
3034
|
+
}
|
|
3035
|
+
},
|
|
3036
|
+
children: initials || 'CC'
|
|
3037
|
+
}), /*#__PURE__*/jsxs(Box, {
|
|
3038
|
+
style: {
|
|
3039
|
+
flex: 1,
|
|
3040
|
+
overflow: 'hidden'
|
|
3041
|
+
},
|
|
3042
|
+
children: [/*#__PURE__*/jsx(Text, {
|
|
3043
|
+
size: fontSizeTitleMap[size],
|
|
3044
|
+
fw: 700,
|
|
3045
|
+
truncate: "end",
|
|
3046
|
+
c: "dark.9",
|
|
3047
|
+
lh: 1.1,
|
|
3048
|
+
children: name
|
|
3049
|
+
}), /*#__PURE__*/jsx(Text, {
|
|
3050
|
+
size: fontSizeEmailMap[size],
|
|
3051
|
+
c: "gray.5",
|
|
3052
|
+
truncate: "end",
|
|
3053
|
+
lh: 1.1,
|
|
3054
|
+
children: email
|
|
3055
|
+
})]
|
|
3056
|
+
}), /*#__PURE__*/jsx(ActionIcon, {
|
|
3057
|
+
variant: "subtle",
|
|
3058
|
+
color: "gray.4",
|
|
3059
|
+
size: size,
|
|
3060
|
+
onClick: signOut,
|
|
3061
|
+
children: /*#__PURE__*/jsx(IconLogout, {
|
|
3062
|
+
size: avatarSizeMap[size] * 0.45
|
|
3063
|
+
})
|
|
3064
|
+
})]
|
|
3065
|
+
}), /*#__PURE__*/jsxs(Group, {
|
|
3066
|
+
gap: gapMap[size] === 'xs' ? 6 : 8,
|
|
3067
|
+
grow: true,
|
|
3068
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
3069
|
+
variant: "default",
|
|
3070
|
+
size: btnSizeMap[size],
|
|
3071
|
+
leftSection: /*#__PURE__*/jsx(IconSettings, {
|
|
3072
|
+
size: avatarSizeMap[size] * 0.45
|
|
3073
|
+
}),
|
|
3074
|
+
onClick: onAccountClick,
|
|
3075
|
+
fw: 700,
|
|
3076
|
+
fz: gapMap[size] === 'xs' ? "10px" : "xs",
|
|
3077
|
+
radius: "md",
|
|
3078
|
+
children: accountLabel
|
|
3079
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
3080
|
+
variant: "default",
|
|
3081
|
+
size: btnSizeMap[size],
|
|
3082
|
+
leftSection: /*#__PURE__*/jsx(IconCreditCard, {
|
|
3083
|
+
size: avatarSizeMap[size] * 0.45
|
|
3084
|
+
}),
|
|
3085
|
+
onClick: onBillingClick,
|
|
3086
|
+
fw: 700,
|
|
3087
|
+
fz: gapMap[size] === 'xs' ? "10px" : "xs",
|
|
3088
|
+
radius: "md",
|
|
3089
|
+
children: billingLabel
|
|
3090
|
+
})]
|
|
3091
|
+
}), /*#__PURE__*/jsxs(Group, {
|
|
3092
|
+
justify: "center",
|
|
3093
|
+
gap: 4,
|
|
3094
|
+
opacity: 0.3,
|
|
3095
|
+
children: [/*#__PURE__*/jsx(Text, {
|
|
3096
|
+
size: "10px",
|
|
3097
|
+
c: "gray.6",
|
|
3098
|
+
fw: 600,
|
|
3099
|
+
children: "Secured by"
|
|
3100
|
+
}), /*#__PURE__*/jsxs(Group, {
|
|
3101
|
+
gap: 2,
|
|
3102
|
+
children: [/*#__PURE__*/jsx(IconShieldCheck, {
|
|
3103
|
+
size: 10,
|
|
3104
|
+
stroke: 2
|
|
3105
|
+
}), /*#__PURE__*/jsx(Text, {
|
|
3106
|
+
size: "10px",
|
|
3107
|
+
fw: 800,
|
|
3108
|
+
c: "dark.9",
|
|
3109
|
+
children: "Auth"
|
|
3110
|
+
})]
|
|
3111
|
+
})]
|
|
3112
|
+
})]
|
|
3113
|
+
})
|
|
3114
|
+
});
|
|
3115
|
+
}
|
|
3116
|
+
|
|
2974
3117
|
/**
|
|
2975
3118
|
* Renderiza children apenas quando o usuário está autenticado
|
|
2976
3119
|
* Equivalente ao <SignedIn> do Clerk
|
|
@@ -3072,5 +3215,5 @@ function SignOutButton({
|
|
|
3072
3215
|
});
|
|
3073
3216
|
}
|
|
3074
3217
|
|
|
3075
|
-
export { UserProfile as AccountModal, AuthCard, AuthLoaded, AuthLoading, AuthProvider, ForgotPassword, ForgotPassword as ForgotPasswordForm, MagicLink, MagicLinkCallback, MagicLink as MagicLinkForm, MagicLinkCallback as MagicLinkVerify, Protect, Protect as ProtectedRoute, ResetPassword, ResetPassword as ResetPasswordForm, SignIn, SignInButton, SignIn as SignInForm, SignOutButton, SignUp, SignUpButton, SignUp as SignUpForm, SignedIn, SignedOut, UserProfile, VerifyEmail, VerifyEmail as VerifyEmailCard, changeEmail, changePassword, configure, decodeJWT, forgotPassword, getApplicationInfo, getCurrentUser, getSession, isAuthenticated, isInternal, listSessions, refreshToken, resendVerification, resetPassword, revokeOtherSessions, revokeSession, sendMagicLink, signIn, signOut, signUp, socialRedirect, updateProfile, useApplicationLogo, useAuth, useAuthLoading, useAuthStore, useCheckToken, useEmailVerification, useMagicLink, usePasswordReset, useUser as useProfile, useSession, useSessions, useSignIn, useSignOut, useSignUp, useUser, verifyEmail, verifyMagicLink };
|
|
3218
|
+
export { UserProfile as AccountModal, AuthCard, AuthLoaded, AuthLoading, AuthProvider, ForgotPassword, ForgotPassword as ForgotPasswordForm, MagicLink, MagicLinkCallback, MagicLink as MagicLinkForm, MagicLinkCallback as MagicLinkVerify, Protect, Protect as ProtectedRoute, ResetPassword, ResetPassword as ResetPasswordForm, SignIn, SignInButton, SignIn as SignInForm, SignOutButton, SignUp, SignUpButton, SignUp as SignUpForm, SignedIn, SignedOut, UserInformation, UserProfile, VerifyEmail, VerifyEmail as VerifyEmailCard, changeEmail, changePassword, configure, decodeJWT, forgotPassword, getApplicationInfo, getCurrentUser, getSession, isAuthenticated, isInternal, listSessions, refreshToken, resendVerification, resetPassword, revokeOtherSessions, revokeSession, sendMagicLink, signIn, signOut, signUp, socialRedirect, updateProfile, useApplicationLogo, useAuth, useAuthLoading, useAuthStore, useCheckToken, useEmailVerification, useMagicLink, usePasswordReset, useUser as useProfile, useSession, useSessions, useSignIn, useSignOut, useSignUp, useUser, verifyEmail, verifyMagicLink };
|
|
3076
3219
|
//# sourceMappingURL=index.esm.js.map
|