@riligar/auth-react 1.29.0 → 1.30.1
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 +159 -148
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +158 -147
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3,7 +3,7 @@ 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,
|
|
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';
|
|
7
7
|
import { useForm } from '@mantine/form';
|
|
8
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';
|
|
9
9
|
|
|
@@ -1288,8 +1288,10 @@ function SignIn({
|
|
|
1288
1288
|
}), showMagicLink && /*#__PURE__*/jsxs(Fragment, {
|
|
1289
1289
|
children: [/*#__PURE__*/jsx(Divider, {
|
|
1290
1290
|
label: labels.orContinueWith || 'Ou continue com'
|
|
1291
|
-
}), /*#__PURE__*/jsx(Button
|
|
1292
|
-
|
|
1291
|
+
}), /*#__PURE__*/jsx(Button
|
|
1292
|
+
// color="dark"
|
|
1293
|
+
, {
|
|
1294
|
+
variant: "outline",
|
|
1293
1295
|
fullWidth: true,
|
|
1294
1296
|
loading: loadingMagicLink,
|
|
1295
1297
|
leftSection: /*#__PURE__*/jsx(IconMail, {
|
|
@@ -1303,7 +1305,7 @@ function SignIn({
|
|
|
1303
1305
|
children: [/*#__PURE__*/jsx(Divider, {}), /*#__PURE__*/jsxs(Group, {
|
|
1304
1306
|
grow: true,
|
|
1305
1307
|
children: [/*#__PURE__*/jsx(Button, {
|
|
1306
|
-
variant: "
|
|
1308
|
+
variant: "outline",
|
|
1307
1309
|
leftSection: /*#__PURE__*/jsx(IconBrandGoogle, {
|
|
1308
1310
|
size: 16
|
|
1309
1311
|
}),
|
|
@@ -1311,7 +1313,7 @@ function SignIn({
|
|
|
1311
1313
|
disabled: isLoading,
|
|
1312
1314
|
children: "Google"
|
|
1313
1315
|
}), /*#__PURE__*/jsx(Button, {
|
|
1314
|
-
variant: "
|
|
1316
|
+
variant: "outline",
|
|
1315
1317
|
leftSection: /*#__PURE__*/jsx(IconBrandGithub, {
|
|
1316
1318
|
size: 16
|
|
1317
1319
|
}),
|
|
@@ -1324,7 +1326,8 @@ function SignIn({
|
|
|
1324
1326
|
children: /*#__PURE__*/jsxs(Text, {
|
|
1325
1327
|
size: "sm",
|
|
1326
1328
|
c: "dimmed",
|
|
1327
|
-
children: [labels.noAccount || 'Não tem uma conta?',
|
|
1329
|
+
children: [labels.noAccount || 'Não tem uma conta?', ' ', /*#__PURE__*/jsx(Anchor, {
|
|
1330
|
+
underline: false,
|
|
1328
1331
|
href: signUpUrl,
|
|
1329
1332
|
children: labels.createAccount || 'Criar conta'
|
|
1330
1333
|
})]
|
|
@@ -2381,14 +2384,17 @@ function UserProfile({
|
|
|
2381
2384
|
mb: "lg",
|
|
2382
2385
|
children: [/*#__PURE__*/jsx(ThemeIcon, {
|
|
2383
2386
|
size: 36,
|
|
2384
|
-
variant: "
|
|
2387
|
+
variant: "subtle",
|
|
2388
|
+
color: "gray",
|
|
2385
2389
|
children: /*#__PURE__*/jsx(Icon, {
|
|
2386
|
-
size:
|
|
2390
|
+
size: 28,
|
|
2391
|
+
stroke: 1.5
|
|
2387
2392
|
})
|
|
2388
|
-
}), /*#__PURE__*/jsxs(
|
|
2393
|
+
}), /*#__PURE__*/jsxs(Stack, {
|
|
2394
|
+
gap: 0,
|
|
2389
2395
|
children: [/*#__PURE__*/jsx(Text, {
|
|
2390
2396
|
fw: 600,
|
|
2391
|
-
size: "
|
|
2397
|
+
size: "sm",
|
|
2392
2398
|
children: sectionTitle
|
|
2393
2399
|
}), description && /*#__PURE__*/jsx(Text, {
|
|
2394
2400
|
size: "xs",
|
|
@@ -2406,12 +2412,12 @@ function UserProfile({
|
|
|
2406
2412
|
actionLabel,
|
|
2407
2413
|
onClick,
|
|
2408
2414
|
expanded
|
|
2409
|
-
}) => /*#__PURE__*/jsx(
|
|
2410
|
-
|
|
2411
|
-
withBorder: false,
|
|
2415
|
+
}) => /*#__PURE__*/jsx(Box, {
|
|
2416
|
+
py: "xs",
|
|
2412
2417
|
children: /*#__PURE__*/jsxs(Group, {
|
|
2413
2418
|
justify: "space-between",
|
|
2414
2419
|
wrap: "nowrap",
|
|
2420
|
+
align: "center",
|
|
2415
2421
|
children: [/*#__PURE__*/jsxs(Group, {
|
|
2416
2422
|
gap: "xl",
|
|
2417
2423
|
wrap: "nowrap",
|
|
@@ -2420,9 +2426,6 @@ function UserProfile({
|
|
|
2420
2426
|
size: "sm",
|
|
2421
2427
|
c: "dimmed",
|
|
2422
2428
|
w: 100,
|
|
2423
|
-
style: {
|
|
2424
|
-
flexShrink: 0
|
|
2425
|
-
},
|
|
2426
2429
|
children: label
|
|
2427
2430
|
}), /*#__PURE__*/jsx(Box, {
|
|
2428
2431
|
flex: 1,
|
|
@@ -2432,10 +2435,11 @@ function UserProfile({
|
|
|
2432
2435
|
label: actionLabel || action,
|
|
2433
2436
|
position: "left",
|
|
2434
2437
|
children: /*#__PURE__*/jsx(Anchor, {
|
|
2435
|
-
size: "
|
|
2436
|
-
fw:
|
|
2438
|
+
size: "xs",
|
|
2439
|
+
fw: 300,
|
|
2437
2440
|
onClick: onClick,
|
|
2438
|
-
c:
|
|
2441
|
+
c: "gray",
|
|
2442
|
+
underline: "none",
|
|
2439
2443
|
children: expanded ? labels.cancel || 'Cancel' : action
|
|
2440
2444
|
})
|
|
2441
2445
|
})]
|
|
@@ -2465,56 +2469,51 @@ function UserProfile({
|
|
|
2465
2469
|
src: user?.image,
|
|
2466
2470
|
name: user?.name || user?.email,
|
|
2467
2471
|
size: 48,
|
|
2468
|
-
radius: "xl"
|
|
2469
|
-
color
|
|
2472
|
+
radius: "xl"
|
|
2473
|
+
// color="initials"
|
|
2470
2474
|
})
|
|
2471
2475
|
})
|
|
2472
2476
|
}), /*#__PURE__*/jsx(Collapse, {
|
|
2473
2477
|
in: editingSection === 'avatar',
|
|
2474
|
-
children: /*#__PURE__*/jsx(
|
|
2475
|
-
p: "
|
|
2478
|
+
children: /*#__PURE__*/jsx(Paper, {
|
|
2479
|
+
p: "sm",
|
|
2476
2480
|
withBorder: true,
|
|
2481
|
+
radius: "sm",
|
|
2477
2482
|
children: /*#__PURE__*/jsxs(Stack, {
|
|
2478
2483
|
gap: "md",
|
|
2479
2484
|
align: "center",
|
|
2480
|
-
children: [/*#__PURE__*/jsx(
|
|
2481
|
-
|
|
2482
|
-
id: "avatar-upload",
|
|
2485
|
+
children: [/*#__PURE__*/jsx(FileButton, {
|
|
2486
|
+
onChange: handleAvatarFileChange,
|
|
2483
2487
|
accept: "image/*",
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
position: "bottom",
|
|
2491
|
-
children: /*#__PURE__*/jsxs(Box, {
|
|
2492
|
-
onClick: () => document.getElementById('avatar-upload')?.click(),
|
|
2493
|
-
style: {
|
|
2494
|
-
position: 'relative',
|
|
2495
|
-
cursor: 'pointer',
|
|
2496
|
-
borderRadius: '50%'
|
|
2497
|
-
},
|
|
2498
|
-
children: [/*#__PURE__*/jsx(Avatar, {
|
|
2499
|
-
src: avatarPreview || user?.image,
|
|
2500
|
-
name: user?.name || user?.email,
|
|
2501
|
-
size: 100,
|
|
2502
|
-
radius: 100,
|
|
2503
|
-
color: "initials"
|
|
2504
|
-
}), /*#__PURE__*/jsx(ThemeIcon, {
|
|
2505
|
-
size: 32,
|
|
2506
|
-
radius: "xl",
|
|
2507
|
-
color: "blue",
|
|
2488
|
+
children: props => /*#__PURE__*/jsx(Tooltip, {
|
|
2489
|
+
label: labels.clickToChange || 'Clique para alterar',
|
|
2490
|
+
position: "bottom",
|
|
2491
|
+
children: /*#__PURE__*/jsxs(Box, {
|
|
2492
|
+
...props,
|
|
2493
|
+
pos: "relative",
|
|
2508
2494
|
style: {
|
|
2509
|
-
|
|
2495
|
+
cursor: 'pointer'
|
|
2496
|
+
},
|
|
2497
|
+
children: [/*#__PURE__*/jsx(Avatar, {
|
|
2498
|
+
src: avatarPreview || user?.image,
|
|
2499
|
+
name: user?.name || user?.email,
|
|
2500
|
+
size: 80,
|
|
2501
|
+
radius: 80,
|
|
2502
|
+
color: "gray"
|
|
2503
|
+
}), /*#__PURE__*/jsx(ThemeIcon, {
|
|
2504
|
+
size: 26,
|
|
2505
|
+
radius: "xl",
|
|
2506
|
+
color: "gray",
|
|
2507
|
+
pos: "absolute",
|
|
2510
2508
|
bottom: 0,
|
|
2511
2509
|
right: 0,
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2510
|
+
bd: "2px solid body",
|
|
2511
|
+
children: /*#__PURE__*/jsx(IconPhoto, {
|
|
2512
|
+
size: 14,
|
|
2513
|
+
stroke: 1.5
|
|
2514
|
+
})
|
|
2515
|
+
})]
|
|
2516
|
+
})
|
|
2518
2517
|
})
|
|
2519
2518
|
}), /*#__PURE__*/jsx(Text, {
|
|
2520
2519
|
size: "xs",
|
|
@@ -2523,20 +2522,18 @@ function UserProfile({
|
|
|
2523
2522
|
children: labels.avatarHint || `Máximo ${Math.round(maxAvatarSize / 1024)}KB • JPG, PNG, GIF, WebP`
|
|
2524
2523
|
}), /*#__PURE__*/jsxs(Group, {
|
|
2525
2524
|
justify: "center",
|
|
2526
|
-
gap: "
|
|
2527
|
-
children: [user?.image && /*#__PURE__*/jsx(
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
children: labels.remove || 'Remover'
|
|
2539
|
-
})
|
|
2525
|
+
gap: "xs",
|
|
2526
|
+
children: [user?.image && /*#__PURE__*/jsx(Button, {
|
|
2527
|
+
variant: "subtle",
|
|
2528
|
+
color: "gray",
|
|
2529
|
+
size: "xs",
|
|
2530
|
+
onClick: handleRemoveAvatar,
|
|
2531
|
+
loading: loadingUpdateProfile,
|
|
2532
|
+
leftSection: /*#__PURE__*/jsx(IconTrash, {
|
|
2533
|
+
size: 14,
|
|
2534
|
+
stroke: 1.5
|
|
2535
|
+
}),
|
|
2536
|
+
children: labels.remove || 'Remover'
|
|
2540
2537
|
}), /*#__PURE__*/jsx(Button, {
|
|
2541
2538
|
variant: "default",
|
|
2542
2539
|
size: "xs",
|
|
@@ -2546,7 +2543,8 @@ function UserProfile({
|
|
|
2546
2543
|
size: "xs",
|
|
2547
2544
|
loading: loadingUpdateProfile,
|
|
2548
2545
|
leftSection: /*#__PURE__*/jsx(IconCheck, {
|
|
2549
|
-
size: 14
|
|
2546
|
+
size: 14,
|
|
2547
|
+
stroke: 1.5
|
|
2550
2548
|
}),
|
|
2551
2549
|
onClick: handleChangeAvatar,
|
|
2552
2550
|
disabled: !avatarPreview || avatarPreview === user?.image,
|
|
@@ -2566,7 +2564,8 @@ function UserProfile({
|
|
|
2566
2564
|
children: /*#__PURE__*/jsxs(Group, {
|
|
2567
2565
|
gap: "xs",
|
|
2568
2566
|
children: [/*#__PURE__*/jsx(IconPencil, {
|
|
2569
|
-
size:
|
|
2567
|
+
size: 18,
|
|
2568
|
+
stroke: 1.5,
|
|
2570
2569
|
color: "var(--mantine-color-dimmed)"
|
|
2571
2570
|
}), /*#__PURE__*/jsx(Text, {
|
|
2572
2571
|
size: "sm",
|
|
@@ -2575,10 +2574,10 @@ function UserProfile({
|
|
|
2575
2574
|
})
|
|
2576
2575
|
}), /*#__PURE__*/jsx(Collapse, {
|
|
2577
2576
|
in: editingSection === 'name',
|
|
2578
|
-
children: /*#__PURE__*/jsx(
|
|
2579
|
-
p: "
|
|
2580
|
-
|
|
2581
|
-
,
|
|
2577
|
+
children: /*#__PURE__*/jsx(Paper, {
|
|
2578
|
+
p: "sm",
|
|
2579
|
+
withBorder: true,
|
|
2580
|
+
radius: "sm",
|
|
2582
2581
|
children: /*#__PURE__*/jsx("form", {
|
|
2583
2582
|
onSubmit: nameForm.onSubmit(handleChangeName),
|
|
2584
2583
|
children: /*#__PURE__*/jsxs(Stack, {
|
|
@@ -2587,26 +2586,25 @@ function UserProfile({
|
|
|
2587
2586
|
label: labels.name || 'Nome',
|
|
2588
2587
|
placeholder: labels.namePlaceholder || 'Digite seu nome',
|
|
2589
2588
|
leftSection: /*#__PURE__*/jsx(IconUser, {
|
|
2590
|
-
size: 16
|
|
2589
|
+
size: 16,
|
|
2590
|
+
stroke: 1.5
|
|
2591
2591
|
}),
|
|
2592
2592
|
...nameForm.getInputProps('name')
|
|
2593
2593
|
}), /*#__PURE__*/jsxs(Group, {
|
|
2594
2594
|
justify: "flex-end",
|
|
2595
|
-
gap: "
|
|
2595
|
+
gap: "xs",
|
|
2596
2596
|
children: [/*#__PURE__*/jsx(Button, {
|
|
2597
2597
|
variant: "default",
|
|
2598
2598
|
size: "xs",
|
|
2599
2599
|
onClick: () => handleToggleSection('name'),
|
|
2600
|
-
leftSection: /*#__PURE__*/jsx(IconX, {
|
|
2601
|
-
size: 14
|
|
2602
|
-
}),
|
|
2603
2600
|
children: labels.cancel || 'Cancelar'
|
|
2604
2601
|
}), /*#__PURE__*/jsx(Button, {
|
|
2605
2602
|
type: "submit",
|
|
2606
2603
|
size: "xs",
|
|
2607
2604
|
loading: loadingUpdateProfile,
|
|
2608
2605
|
leftSection: /*#__PURE__*/jsx(IconCheck, {
|
|
2609
|
-
size: 14
|
|
2606
|
+
size: 14,
|
|
2607
|
+
stroke: 1.5
|
|
2610
2608
|
}),
|
|
2611
2609
|
children: labels.save || 'Salvar'
|
|
2612
2610
|
})]
|
|
@@ -2625,7 +2623,8 @@ function UserProfile({
|
|
|
2625
2623
|
children: /*#__PURE__*/jsxs(Group, {
|
|
2626
2624
|
gap: "xs",
|
|
2627
2625
|
children: [/*#__PURE__*/jsx(IconMail, {
|
|
2628
|
-
size:
|
|
2626
|
+
size: 18,
|
|
2627
|
+
stroke: 1.5,
|
|
2629
2628
|
color: "var(--mantine-color-dimmed)"
|
|
2630
2629
|
}), /*#__PURE__*/jsx(Text, {
|
|
2631
2630
|
size: "sm",
|
|
@@ -2634,9 +2633,10 @@ function UserProfile({
|
|
|
2634
2633
|
})
|
|
2635
2634
|
}), /*#__PURE__*/jsx(Collapse, {
|
|
2636
2635
|
in: editingSection === 'email',
|
|
2637
|
-
children: /*#__PURE__*/jsx(
|
|
2638
|
-
p: "
|
|
2636
|
+
children: /*#__PURE__*/jsx(Paper, {
|
|
2637
|
+
p: "sm",
|
|
2639
2638
|
withBorder: true,
|
|
2639
|
+
radius: "sm",
|
|
2640
2640
|
children: /*#__PURE__*/jsx("form", {
|
|
2641
2641
|
onSubmit: emailForm.onSubmit(handleChangeEmail),
|
|
2642
2642
|
children: /*#__PURE__*/jsxs(Stack, {
|
|
@@ -2645,26 +2645,25 @@ function UserProfile({
|
|
|
2645
2645
|
label: labels.newEmail || 'Novo Email',
|
|
2646
2646
|
placeholder: labels.newEmailPlaceholder || 'Digite o novo email',
|
|
2647
2647
|
leftSection: /*#__PURE__*/jsx(IconMail, {
|
|
2648
|
-
size: 16
|
|
2648
|
+
size: 16,
|
|
2649
|
+
stroke: 1.5
|
|
2649
2650
|
}),
|
|
2650
2651
|
...emailForm.getInputProps('newEmail')
|
|
2651
2652
|
}), /*#__PURE__*/jsxs(Group, {
|
|
2652
2653
|
justify: "flex-end",
|
|
2653
|
-
gap: "
|
|
2654
|
+
gap: "xs",
|
|
2654
2655
|
children: [/*#__PURE__*/jsx(Button, {
|
|
2655
2656
|
variant: "default",
|
|
2656
2657
|
size: "xs",
|
|
2657
2658
|
onClick: () => handleToggleSection('email'),
|
|
2658
|
-
leftSection: /*#__PURE__*/jsx(IconX, {
|
|
2659
|
-
size: 14
|
|
2660
|
-
}),
|
|
2661
2659
|
children: labels.cancel || 'Cancelar'
|
|
2662
2660
|
}), /*#__PURE__*/jsx(Button, {
|
|
2663
2661
|
type: "submit",
|
|
2664
2662
|
size: "xs",
|
|
2665
2663
|
loading: loadingChangeEmail,
|
|
2666
2664
|
leftSection: /*#__PURE__*/jsx(IconCheck, {
|
|
2667
|
-
size: 14
|
|
2665
|
+
size: 14,
|
|
2666
|
+
stroke: 1.5
|
|
2668
2667
|
}),
|
|
2669
2668
|
children: labels.save || 'Salvar'
|
|
2670
2669
|
})]
|
|
@@ -2693,7 +2692,8 @@ function UserProfile({
|
|
|
2693
2692
|
children: /*#__PURE__*/jsxs(Group, {
|
|
2694
2693
|
gap: "xs",
|
|
2695
2694
|
children: [/*#__PURE__*/jsx(IconKey, {
|
|
2696
|
-
size:
|
|
2695
|
+
size: 18,
|
|
2696
|
+
stroke: 1.5,
|
|
2697
2697
|
color: "var(--mantine-color-dimmed)"
|
|
2698
2698
|
}), /*#__PURE__*/jsx(Text, {
|
|
2699
2699
|
size: "sm",
|
|
@@ -2703,9 +2703,10 @@ function UserProfile({
|
|
|
2703
2703
|
})
|
|
2704
2704
|
}), /*#__PURE__*/jsx(Collapse, {
|
|
2705
2705
|
in: editingSection === 'password',
|
|
2706
|
-
children: /*#__PURE__*/jsx(
|
|
2707
|
-
p: "
|
|
2706
|
+
children: /*#__PURE__*/jsx(Paper, {
|
|
2707
|
+
p: "sm",
|
|
2708
2708
|
withBorder: true,
|
|
2709
|
+
radius: "sm",
|
|
2709
2710
|
children: /*#__PURE__*/jsx("form", {
|
|
2710
2711
|
onSubmit: passwordForm.onSubmit(handleChangePassword),
|
|
2711
2712
|
children: /*#__PURE__*/jsxs(Stack, {
|
|
@@ -2730,16 +2731,14 @@ function UserProfile({
|
|
|
2730
2731
|
variant: "default",
|
|
2731
2732
|
size: "xs",
|
|
2732
2733
|
onClick: () => handleToggleSection('password'),
|
|
2733
|
-
leftSection: /*#__PURE__*/jsx(IconX, {
|
|
2734
|
-
size: 14
|
|
2735
|
-
}),
|
|
2736
2734
|
children: labels.cancel || 'Cancelar'
|
|
2737
2735
|
}), /*#__PURE__*/jsx(Button, {
|
|
2738
2736
|
type: "submit",
|
|
2739
2737
|
size: "xs",
|
|
2740
2738
|
loading: loadingChangePassword,
|
|
2741
2739
|
leftSection: /*#__PURE__*/jsx(IconCheck, {
|
|
2742
|
-
size: 14
|
|
2740
|
+
size: 14,
|
|
2741
|
+
stroke: 1.5
|
|
2743
2742
|
}),
|
|
2744
2743
|
children: labels.save || 'Salvar'
|
|
2745
2744
|
})]
|
|
@@ -2758,7 +2757,8 @@ function UserProfile({
|
|
|
2758
2757
|
children: /*#__PURE__*/jsxs(Group, {
|
|
2759
2758
|
gap: "xs",
|
|
2760
2759
|
children: [/*#__PURE__*/jsx(IconDevices, {
|
|
2761
|
-
size:
|
|
2760
|
+
size: 18,
|
|
2761
|
+
stroke: 1.5,
|
|
2762
2762
|
color: "var(--mantine-color-dimmed)"
|
|
2763
2763
|
}), /*#__PURE__*/jsx(Text, {
|
|
2764
2764
|
size: "sm",
|
|
@@ -2768,62 +2768,62 @@ function UserProfile({
|
|
|
2768
2768
|
})
|
|
2769
2769
|
}), /*#__PURE__*/jsx(Collapse, {
|
|
2770
2770
|
in: editingSection === 'sessions',
|
|
2771
|
-
children: /*#__PURE__*/jsx(
|
|
2772
|
-
p: "
|
|
2771
|
+
children: /*#__PURE__*/jsx(Paper, {
|
|
2772
|
+
p: "sm",
|
|
2773
2773
|
withBorder: true,
|
|
2774
|
+
radius: "sm",
|
|
2774
2775
|
children: /*#__PURE__*/jsx(Stack, {
|
|
2775
|
-
gap: "
|
|
2776
|
+
gap: "xs",
|
|
2776
2777
|
children: loadingListSessions ? /*#__PURE__*/jsx(Text, {
|
|
2777
|
-
size: "
|
|
2778
|
+
size: "xs",
|
|
2778
2779
|
c: "dimmed",
|
|
2779
2780
|
ta: "center",
|
|
2781
|
+
py: "md",
|
|
2780
2782
|
children: labels.loadingSessions || 'Carregando sessões...'
|
|
2781
2783
|
}) : sessions.length === 0 ? /*#__PURE__*/jsx(Text, {
|
|
2782
|
-
size: "
|
|
2784
|
+
size: "xs",
|
|
2783
2785
|
c: "dimmed",
|
|
2784
2786
|
ta: "center",
|
|
2787
|
+
py: "md",
|
|
2785
2788
|
children: labels.noSessionsFound || 'Nenhuma sessão encontrada'
|
|
2786
2789
|
}) : /*#__PURE__*/jsxs(Fragment, {
|
|
2787
2790
|
children: [sessions.map(sessionItem => {
|
|
2788
2791
|
const isCurrentSession = sessionItem.id === currentSession?.id;
|
|
2789
2792
|
const deviceInfo = parseUserAgent(sessionItem.userAgent);
|
|
2790
2793
|
const createdDate = new Date(sessionItem.createdAt);
|
|
2791
|
-
return /*#__PURE__*/jsx(
|
|
2792
|
-
p: "
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
},
|
|
2794
|
+
return /*#__PURE__*/jsx(Paper, {
|
|
2795
|
+
p: "xs",
|
|
2796
|
+
withBorder: isCurrentSession,
|
|
2797
|
+
bd: isCurrentSession ? '1px solid gray' : undefined,
|
|
2798
|
+
radius: "sm",
|
|
2797
2799
|
children: /*#__PURE__*/jsxs(Group, {
|
|
2798
2800
|
justify: "space-between",
|
|
2799
2801
|
wrap: "nowrap",
|
|
2802
|
+
align: "center",
|
|
2800
2803
|
children: [/*#__PURE__*/jsxs(Group, {
|
|
2801
2804
|
gap: "sm",
|
|
2802
2805
|
wrap: "nowrap",
|
|
2803
|
-
|
|
2804
|
-
flex: 1
|
|
2805
|
-
},
|
|
2806
|
+
flex: 1,
|
|
2806
2807
|
children: [/*#__PURE__*/jsx(ThemeIcon, {
|
|
2807
|
-
size:
|
|
2808
|
-
variant: "
|
|
2809
|
-
color:
|
|
2808
|
+
size: 32,
|
|
2809
|
+
variant: "subtle",
|
|
2810
|
+
color: "gray",
|
|
2810
2811
|
children: /*#__PURE__*/jsx(IconDeviceMobile, {
|
|
2811
|
-
size: 18
|
|
2812
|
+
size: 18,
|
|
2813
|
+
stroke: 1.5
|
|
2812
2814
|
})
|
|
2813
2815
|
}), /*#__PURE__*/jsxs(Box, {
|
|
2814
|
-
|
|
2815
|
-
flex: 1
|
|
2816
|
-
},
|
|
2816
|
+
flex: 1,
|
|
2817
2817
|
children: [/*#__PURE__*/jsxs(Group, {
|
|
2818
2818
|
gap: "xs",
|
|
2819
2819
|
children: [/*#__PURE__*/jsx(Text, {
|
|
2820
|
-
size: "
|
|
2821
|
-
fw:
|
|
2820
|
+
size: "xs",
|
|
2821
|
+
fw: 600,
|
|
2822
2822
|
children: deviceInfo.browser
|
|
2823
2823
|
}), isCurrentSession && /*#__PURE__*/jsx(Badge, {
|
|
2824
2824
|
size: "xs",
|
|
2825
|
-
variant: "
|
|
2826
|
-
color: "
|
|
2825
|
+
variant: "light",
|
|
2826
|
+
color: "gray",
|
|
2827
2827
|
children: labels.thisDevice || 'Este dispositivo'
|
|
2828
2828
|
})]
|
|
2829
2829
|
}), /*#__PURE__*/jsxs(Text, {
|
|
@@ -2842,13 +2842,14 @@ function UserProfile({
|
|
|
2842
2842
|
}), /*#__PURE__*/jsx(Tooltip, {
|
|
2843
2843
|
label: isCurrentSession ? labels.signOutAndEnd || 'Encerrar e sair' : labels.endSession || 'Encerrar sessão',
|
|
2844
2844
|
children: /*#__PURE__*/jsx(Button, {
|
|
2845
|
-
variant: "
|
|
2846
|
-
color: "
|
|
2845
|
+
variant: "subtle",
|
|
2846
|
+
color: "gray",
|
|
2847
2847
|
size: "xs",
|
|
2848
2848
|
onClick: () => handleRevokeSession(sessionItem.id),
|
|
2849
2849
|
loading: loadingRevokeSession === sessionItem.id,
|
|
2850
2850
|
leftSection: /*#__PURE__*/jsx(IconLogout, {
|
|
2851
|
-
size: 14
|
|
2851
|
+
size: 14,
|
|
2852
|
+
stroke: 1.5
|
|
2852
2853
|
}),
|
|
2853
2854
|
children: labels.end || 'Encerrar'
|
|
2854
2855
|
})
|
|
@@ -2857,14 +2858,16 @@ function UserProfile({
|
|
|
2857
2858
|
}, sessionItem.id);
|
|
2858
2859
|
}), sessions.length > 1 && /*#__PURE__*/jsx(Group, {
|
|
2859
2860
|
justify: "flex-end",
|
|
2861
|
+
mt: "xs",
|
|
2860
2862
|
children: /*#__PURE__*/jsx(Button, {
|
|
2861
|
-
variant: "
|
|
2862
|
-
color: "
|
|
2863
|
+
variant: "subtle",
|
|
2864
|
+
color: "gray",
|
|
2863
2865
|
size: "xs",
|
|
2864
2866
|
onClick: handleRevokeOtherSessions,
|
|
2865
2867
|
loading: loadingRevokeSession === 'all',
|
|
2866
2868
|
leftSection: /*#__PURE__*/jsx(IconLogout, {
|
|
2867
|
-
size: 14
|
|
2869
|
+
size: 14,
|
|
2870
|
+
stroke: 1.5
|
|
2868
2871
|
}),
|
|
2869
2872
|
children: labels.endOtherSessions || 'Encerrar todas as outras sessões'
|
|
2870
2873
|
})
|
|
@@ -2883,27 +2886,31 @@ function UserProfile({
|
|
|
2883
2886
|
return /*#__PURE__*/jsxs(Modal, {
|
|
2884
2887
|
opened: opened,
|
|
2885
2888
|
onClose: onClose,
|
|
2886
|
-
size: width
|
|
2889
|
+
size: width,
|
|
2887
2890
|
withCloseButton: true,
|
|
2888
2891
|
radius: "md",
|
|
2889
2892
|
overlayProps: {
|
|
2890
|
-
backgroundOpacity: 0.
|
|
2891
|
-
blur:
|
|
2893
|
+
backgroundOpacity: 0.5,
|
|
2894
|
+
blur: 4
|
|
2892
2895
|
},
|
|
2893
2896
|
title: /*#__PURE__*/jsxs(Group, {
|
|
2894
|
-
gap: "
|
|
2897
|
+
gap: "sm",
|
|
2895
2898
|
children: [/*#__PURE__*/jsx(ThemeIcon, {
|
|
2896
|
-
size:
|
|
2897
|
-
variant: "
|
|
2899
|
+
size: 32,
|
|
2900
|
+
variant: "subtle",
|
|
2901
|
+
color: "gray",
|
|
2898
2902
|
children: /*#__PURE__*/jsx(IconUserCircle, {
|
|
2899
|
-
size: 24
|
|
2903
|
+
size: 24,
|
|
2904
|
+
stroke: 1.5
|
|
2900
2905
|
})
|
|
2901
|
-
}), /*#__PURE__*/jsxs(
|
|
2906
|
+
}), /*#__PURE__*/jsxs(Stack, {
|
|
2907
|
+
gap: 0,
|
|
2902
2908
|
children: [/*#__PURE__*/jsx(Title, {
|
|
2903
|
-
order:
|
|
2909
|
+
order: 5,
|
|
2910
|
+
fw: 600,
|
|
2904
2911
|
children: title
|
|
2905
2912
|
}), /*#__PURE__*/jsx(Text, {
|
|
2906
|
-
size: "
|
|
2913
|
+
size: "xs",
|
|
2907
2914
|
c: "dimmed",
|
|
2908
2915
|
children: subtitle
|
|
2909
2916
|
})]
|
|
@@ -2928,24 +2935,28 @@ function UserProfile({
|
|
|
2928
2935
|
children: /*#__PURE__*/jsxs(Stack, {
|
|
2929
2936
|
gap: "sm",
|
|
2930
2937
|
children: [/*#__PURE__*/jsxs(Group, {
|
|
2931
|
-
gap: "
|
|
2938
|
+
gap: "sm",
|
|
2932
2939
|
children: [logo ? /*#__PURE__*/jsx(Image, {
|
|
2933
2940
|
src: logo,
|
|
2934
2941
|
alt: "Auth",
|
|
2935
2942
|
h: logoHeight,
|
|
2936
2943
|
fit: "contain"
|
|
2937
2944
|
}) : /*#__PURE__*/jsx(ThemeIcon, {
|
|
2938
|
-
size:
|
|
2939
|
-
variant: "
|
|
2945
|
+
size: 32,
|
|
2946
|
+
variant: "subtle",
|
|
2947
|
+
color: "gray",
|
|
2940
2948
|
children: /*#__PURE__*/jsx(IconUserCircle, {
|
|
2941
|
-
size: 24
|
|
2949
|
+
size: 24,
|
|
2950
|
+
stroke: 1.5
|
|
2942
2951
|
})
|
|
2943
|
-
}), /*#__PURE__*/jsxs(
|
|
2952
|
+
}), /*#__PURE__*/jsxs(Stack, {
|
|
2953
|
+
gap: 0,
|
|
2944
2954
|
children: [/*#__PURE__*/jsx(Title, {
|
|
2945
|
-
order:
|
|
2955
|
+
order: 5,
|
|
2956
|
+
fw: 600,
|
|
2946
2957
|
children: title
|
|
2947
2958
|
}), /*#__PURE__*/jsx(Text, {
|
|
2948
|
-
size: "
|
|
2959
|
+
size: "xs",
|
|
2949
2960
|
c: "dimmed",
|
|
2950
2961
|
children: subtitle
|
|
2951
2962
|
})]
|