@ssplib/react-components 0.0.147 → 0.0.150
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/components/form/table/Table.js +3 -6
- package/components/providers/KeycloakAuthProvider.d.ts +8 -0
- package/components/providers/KeycloakAuthProvider.js +94 -0
- package/components/providers/OAuthProvider.js +1 -1
- package/index.d.ts +2 -3
- package/index.js +3 -5
- package/package.json +3 -2
- package/types/auth.d.ts +5 -6
- package/components/page/Login.d.ts +0 -8
- package/components/page/Login.js +0 -69
- package/components/providers/LoginProvider.d.ts +0 -9
- package/components/providers/LoginProvider.js +0 -123
|
@@ -413,18 +413,15 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
413
413
|
} //
|
|
414
414
|
else if (type === 'items') {
|
|
415
415
|
rawList = rawList
|
|
416
|
-
.filter((x) => x[keyName].toLowerCase()
|
|
416
|
+
.filter((x) => x[keyName].toLowerCase().includes(customValue))
|
|
417
417
|
.sort((a, b) => {
|
|
418
418
|
const aValue = a[keyName];
|
|
419
419
|
const bValue = b[keyName];
|
|
420
420
|
const valueA = typeof aValue === 'number' ? aValue : aValue.toLowerCase();
|
|
421
421
|
const valueB = typeof bValue === 'number' ? bValue : bValue.toLowerCase();
|
|
422
|
-
|
|
423
|
-
// const bRKey = b[referencekey ?? '']
|
|
424
|
-
// if (valueA === customValue) console.log(valueA, valueB, aRKey, bRKey)
|
|
425
|
-
if (valueA === customValue)
|
|
422
|
+
if (valueA.includes(customValue))
|
|
426
423
|
return -1;
|
|
427
|
-
if (valueB
|
|
424
|
+
if (valueB.includes(customValue))
|
|
428
425
|
return 1;
|
|
429
426
|
if (valueA < valueB) {
|
|
430
427
|
return -1;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const cookieName = "nextauth.token";
|
|
3
|
+
export declare function KeycloakAuthProvider({ url, realm, clientId, children }: {
|
|
4
|
+
url: string;
|
|
5
|
+
realm: string;
|
|
6
|
+
clientId: string;
|
|
7
|
+
children: JSX.Element | JSX.Element[];
|
|
8
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.KeycloakAuthProvider = exports.cookieName = void 0;
|
|
30
|
+
const router_1 = require("next/router");
|
|
31
|
+
const react_1 = __importStar(require("react"));
|
|
32
|
+
const auth_1 = require("../../context/auth");
|
|
33
|
+
const keycloak_js_1 = __importDefault(require("keycloak-js"));
|
|
34
|
+
exports.cookieName = 'nextauth.token';
|
|
35
|
+
const userImgName = 'user-data.img';
|
|
36
|
+
function KeycloakAuthProvider({ url, realm, clientId, children }) {
|
|
37
|
+
const [user, setUser] = (0, react_1.useState)();
|
|
38
|
+
const [userLoaded, setUserLoaded] = (0, react_1.useState)(false);
|
|
39
|
+
const [kc, setKc] = (0, react_1.useState)(null);
|
|
40
|
+
const [token, setToken] = (0, react_1.useState)(undefined);
|
|
41
|
+
const router = (0, router_1.useRouter)();
|
|
42
|
+
const isAuth = !!user;
|
|
43
|
+
(0, react_1.useEffect)(() => {
|
|
44
|
+
const keycloak = new keycloak_js_1.default({
|
|
45
|
+
url: url,
|
|
46
|
+
realm: realm,
|
|
47
|
+
clientId: clientId,
|
|
48
|
+
});
|
|
49
|
+
setKc(keycloak);
|
|
50
|
+
keycloak
|
|
51
|
+
.init({
|
|
52
|
+
onLoad: 'check-sso',
|
|
53
|
+
pkceMethod: 'S256',
|
|
54
|
+
})
|
|
55
|
+
.then((auth) => {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
setUserLoaded(true);
|
|
58
|
+
if (!auth) {
|
|
59
|
+
console.log('NAO AUTENTICADO');
|
|
60
|
+
//window.location.reload();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const tokenParsed = keycloak.tokenParsed;
|
|
64
|
+
const userData = Object.assign(Object.assign({}, tokenParsed), { token: keycloak.token, roles: ((_b = ((_a = tokenParsed === null || tokenParsed === void 0 ? void 0 : tokenParsed.resource_access) !== null && _a !== void 0 ? _a : {})['eventos-front']) !== null && _b !== void 0 ? _b : []).roles });
|
|
65
|
+
setUser(userData);
|
|
66
|
+
console.info('Authenticated!!!');
|
|
67
|
+
keycloak.onTokenExpired = () => {
|
|
68
|
+
console.log('token expired');
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}, () => {
|
|
72
|
+
console.error('Authenticated Failed');
|
|
73
|
+
});
|
|
74
|
+
const s = router.query['status'];
|
|
75
|
+
if (!s)
|
|
76
|
+
return;
|
|
77
|
+
if (s === 'success') {
|
|
78
|
+
window.history.replaceState(null, '', '/');
|
|
79
|
+
}
|
|
80
|
+
}, []);
|
|
81
|
+
function login() {
|
|
82
|
+
kc === null || kc === void 0 ? void 0 : kc.login();
|
|
83
|
+
}
|
|
84
|
+
function logout() {
|
|
85
|
+
setUserLoaded(false);
|
|
86
|
+
console.log('TENTANDO DESLOGAR');
|
|
87
|
+
console.log(kc);
|
|
88
|
+
kc === null || kc === void 0 ? void 0 : kc.logout();
|
|
89
|
+
setUser(null);
|
|
90
|
+
localStorage.removeItem(userImgName);
|
|
91
|
+
}
|
|
92
|
+
return react_1.default.createElement(auth_1.AuthContext.Provider, { value: { user, isAuth, userLoaded, login, logout, saveUserData: () => { }, type: 'ad' } }, children);
|
|
93
|
+
}
|
|
94
|
+
exports.KeycloakAuthProvider = KeycloakAuthProvider;
|
|
@@ -133,6 +133,6 @@ function OAuthProvider({ children, AUTH_URL, oidcConfig, redirectURL, validateTo
|
|
|
133
133
|
setUserLoaded(true);
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
return react_1.default.createElement(auth_1.AuthContext.Provider, { value: { user, isAuth, userLoaded, login,
|
|
136
|
+
return react_1.default.createElement(auth_1.AuthContext.Provider, { value: { user, isAuth, userLoaded, login, logout, saveUserData, type: 'govbr' } }, children);
|
|
137
137
|
}
|
|
138
138
|
exports.OAuthProvider = OAuthProvider;
|
package/index.d.ts
CHANGED
|
@@ -18,14 +18,13 @@ import Table from './components/form/table/Table';
|
|
|
18
18
|
import NavBar from './components/navbar/NavBar';
|
|
19
19
|
import FormProvider from './components/providers/FormProvider';
|
|
20
20
|
import { OAuthProvider, cookieName as AUTH_COOKIE_NAME } from './components/providers/OAuthProvider';
|
|
21
|
-
import { LoginProvider } from './components/providers/LoginProvider';
|
|
22
21
|
import { AuthContext } from './context/auth';
|
|
23
22
|
import { FormContext } from './context/form';
|
|
24
|
-
import { Login } from './components/page/Login';
|
|
25
23
|
import { Category } from './components/detalhes/Category';
|
|
26
24
|
import { Field } from './components/detalhes/Field';
|
|
27
25
|
import { FieldLabel } from './components/detalhes/FieldLabel';
|
|
28
26
|
import { File } from './components/detalhes/File';
|
|
29
27
|
import CheckBoxAdditional from './components/form/checkbox/CheckBoxAdditional';
|
|
30
28
|
import RequiredCheckBoxGroup from './components/form/checkbox/RequiredCheckBoxValidator';
|
|
31
|
-
|
|
29
|
+
import { KeycloakAuthProvider } from './components/providers/KeycloakAuthProvider';
|
|
30
|
+
export { CheckBox, CheckBoxWarning, DatePicker, TimePicker, FileUpload, ActiveInput, AutoComplete, FetchAutoComplete, Input, MaskInput, MultInput, OtherCheckBox, Stepper, StepperBlock, Switch, SwitchWatch, ToggleVisibility, Table, NavBar, FormProvider, OAuthProvider, AUTH_COOKIE_NAME, AuthContext, FormContext, KeycloakAuthProvider, CheckBoxAdditional, RequiredCheckBoxGroup, Category, Field, FieldLabel, File, };
|
package/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.File = exports.FieldLabel = exports.Field = exports.Category = exports.RequiredCheckBoxGroup = exports.CheckBoxAdditional = exports.KeycloakAuthProvider = exports.FormContext = exports.AuthContext = exports.AUTH_COOKIE_NAME = exports.OAuthProvider = exports.FormProvider = exports.NavBar = exports.Table = exports.ToggleVisibility = exports.SwitchWatch = exports.Switch = exports.StepperBlock = exports.Stepper = exports.OtherCheckBox = exports.MultInput = exports.MaskInput = exports.Input = exports.FetchAutoComplete = exports.AutoComplete = exports.ActiveInput = exports.FileUpload = exports.TimePicker = exports.DatePicker = exports.CheckBoxWarning = exports.CheckBox = void 0;
|
|
7
7
|
const CheckBox_1 = __importDefault(require("./components/form/checkbox/CheckBox"));
|
|
8
8
|
exports.CheckBox = CheckBox_1.default;
|
|
9
9
|
const CheckBoxWarning_1 = __importDefault(require("./components/form/checkbox/CheckBoxWarning"));
|
|
@@ -46,14 +46,10 @@ exports.FormProvider = FormProvider_1.default;
|
|
|
46
46
|
const OAuthProvider_1 = require("./components/providers/OAuthProvider");
|
|
47
47
|
Object.defineProperty(exports, "OAuthProvider", { enumerable: true, get: function () { return OAuthProvider_1.OAuthProvider; } });
|
|
48
48
|
Object.defineProperty(exports, "AUTH_COOKIE_NAME", { enumerable: true, get: function () { return OAuthProvider_1.cookieName; } });
|
|
49
|
-
const LoginProvider_1 = require("./components/providers/LoginProvider");
|
|
50
|
-
Object.defineProperty(exports, "LoginProvider", { enumerable: true, get: function () { return LoginProvider_1.LoginProvider; } });
|
|
51
49
|
const auth_1 = require("./context/auth");
|
|
52
50
|
Object.defineProperty(exports, "AuthContext", { enumerable: true, get: function () { return auth_1.AuthContext; } });
|
|
53
51
|
const form_1 = require("./context/form");
|
|
54
52
|
Object.defineProperty(exports, "FormContext", { enumerable: true, get: function () { return form_1.FormContext; } });
|
|
55
|
-
const Login_1 = require("./components/page/Login");
|
|
56
|
-
Object.defineProperty(exports, "LoginPage", { enumerable: true, get: function () { return Login_1.Login; } });
|
|
57
53
|
const Category_1 = require("./components/detalhes/Category");
|
|
58
54
|
Object.defineProperty(exports, "Category", { enumerable: true, get: function () { return Category_1.Category; } });
|
|
59
55
|
const Field_1 = require("./components/detalhes/Field");
|
|
@@ -66,3 +62,5 @@ const CheckBoxAdditional_1 = __importDefault(require("./components/form/checkbox
|
|
|
66
62
|
exports.CheckBoxAdditional = CheckBoxAdditional_1.default;
|
|
67
63
|
const RequiredCheckBoxValidator_1 = __importDefault(require("./components/form/checkbox/RequiredCheckBoxValidator"));
|
|
68
64
|
exports.RequiredCheckBoxGroup = RequiredCheckBoxValidator_1.default;
|
|
65
|
+
const KeycloakAuthProvider_1 = require("./components/providers/KeycloakAuthProvider");
|
|
66
|
+
Object.defineProperty(exports, "KeycloakAuthProvider", { enumerable: true, get: function () { return KeycloakAuthProvider_1.KeycloakAuthProvider; } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ssplib/react-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.150",
|
|
4
4
|
"description": "SSP React Components",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "Pedro Henrique <sr.hudrick@gmail.com>",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"dayjs": "^1.11.7",
|
|
16
16
|
"lodash.hasin": "^4.5.2",
|
|
17
17
|
"react-google-recaptcha": "^2.1.0",
|
|
18
|
-
"jszip": "^3.10.1"
|
|
18
|
+
"jszip": "^3.10.1",
|
|
19
|
+
"keycloak-js": "^22.0.4"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
21
22
|
"@types/lodash.get": "^4.4.7",
|
package/types/auth.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export interface User {
|
|
3
|
-
name
|
|
4
|
-
token: string;
|
|
5
|
-
roles?: number[];
|
|
1
|
+
import { KeycloakTokenParsed } from "keycloak-js";
|
|
2
|
+
export interface User extends KeycloakTokenParsed {
|
|
3
|
+
name?: string;
|
|
4
|
+
token: string | undefined;
|
|
5
|
+
roles?: number[] | string[];
|
|
6
6
|
image?: string;
|
|
7
7
|
}
|
|
8
8
|
export interface AuthData {
|
|
@@ -67,7 +67,6 @@ export interface AuthReturnData {
|
|
|
67
67
|
user: User | null | undefined;
|
|
68
68
|
userLoaded: boolean;
|
|
69
69
|
login: () => void;
|
|
70
|
-
adLogin: (loginURL: string, data: any, setLoading: React.Dispatch<React.SetStateAction<boolean>>, setError: React.Dispatch<React.SetStateAction<boolean>>, captchaToken: string) => void;
|
|
71
70
|
saveUserData: (token: AuthReturn) => void;
|
|
72
71
|
logout: () => void;
|
|
73
72
|
}
|
package/components/page/Login.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.Login = void 0;
|
|
30
|
-
const lab_1 = require("@mui/lab");
|
|
31
|
-
const material_1 = require("@mui/material");
|
|
32
|
-
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
33
|
-
const Container_1 = __importDefault(require("@mui/material/Container"));
|
|
34
|
-
const Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
35
|
-
const React = __importStar(require("react"));
|
|
36
|
-
const react_1 = require("react");
|
|
37
|
-
const auth_1 = require("../../context/auth");
|
|
38
|
-
const FormProvider_1 = __importDefault(require("../providers/FormProvider"));
|
|
39
|
-
const react_google_recaptcha_1 = __importDefault(require("react-google-recaptcha"));
|
|
40
|
-
function Login({ imgURL = '', name = 'Login', children, loginURL, captchaSiteKey, }) {
|
|
41
|
-
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
42
|
-
const [error, setError] = (0, react_1.useState)(false);
|
|
43
|
-
const [captchaSolved, setCaptchaSolved] = (0, react_1.useState)(false);
|
|
44
|
-
const [captchaToken, setCaptchaToken] = (0, react_1.useState)('');
|
|
45
|
-
const captcha = (0, react_1.useRef)(null);
|
|
46
|
-
const { adLogin } = (0, react_1.useContext)(auth_1.AuthContext);
|
|
47
|
-
function onLogin(data) {
|
|
48
|
-
adLogin(loginURL, data, setLoading, setError, captchaToken);
|
|
49
|
-
}
|
|
50
|
-
return (React.createElement(FormProvider_1.default, { onSubmit: onLogin },
|
|
51
|
-
React.createElement(Container_1.default, { component: 'main', maxWidth: 'xs' },
|
|
52
|
-
React.createElement(Box_1.default, { sx: {
|
|
53
|
-
marginTop: 8,
|
|
54
|
-
display: 'flex',
|
|
55
|
-
flexDirection: 'column',
|
|
56
|
-
alignItems: 'center',
|
|
57
|
-
} },
|
|
58
|
-
imgURL && React.createElement("img", { src: imgURL, alt: '', height: 100, width: 100 }),
|
|
59
|
-
React.createElement(Typography_1.default, { component: 'h1', variant: 'h5', paddingY: 3 }, name),
|
|
60
|
-
React.createElement(material_1.Stack, { spacing: 3, width: 300 },
|
|
61
|
-
React.createElement(material_1.Stack, { spacing: 1 }, children),
|
|
62
|
-
captchaSiteKey && (React.createElement(react_google_recaptcha_1.default, { ref: captcha, hl: 'pt', sitekey: captchaSiteKey, onExpired: () => setCaptchaSolved(false), onChange: (e) => {
|
|
63
|
-
setCaptchaToken(e), e && setCaptchaSolved(true);
|
|
64
|
-
} })),
|
|
65
|
-
React.createElement(lab_1.LoadingButton, { type: 'submit', fullWidth: true, variant: 'contained', loading: loading, disabled: !!captchaSiteKey ? !captchaSolved : false }, "Login"),
|
|
66
|
-
error && (React.createElement(Box_1.default, { bgcolor: '#ce4257', padding: 2, borderRadius: 2, color: 'white' },
|
|
67
|
-
React.createElement(Typography_1.default, null, "Dados incorretos. Tente novamente!"))))))));
|
|
68
|
-
}
|
|
69
|
-
exports.Login = Login;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const cookieName = "nextauth.token";
|
|
3
|
-
export declare function LoginProvider({ children, AUTH_URL, redirectURL, validateTokenRoute, }: {
|
|
4
|
-
children: JSX.Element | JSX.Element[];
|
|
5
|
-
AUTH_URL: string;
|
|
6
|
-
validateTokenRoute: string;
|
|
7
|
-
testToken: string;
|
|
8
|
-
redirectURL?: string;
|
|
9
|
-
}): JSX.Element;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.LoginProvider = exports.cookieName = void 0;
|
|
39
|
-
const cookies_next_1 = require("cookies-next");
|
|
40
|
-
const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
41
|
-
const router_1 = require("next/router");
|
|
42
|
-
const react_1 = __importStar(require("react"));
|
|
43
|
-
const auth_1 = require("../../context/auth");
|
|
44
|
-
exports.cookieName = 'nextauth.token';
|
|
45
|
-
const userImgName = 'user-data.img';
|
|
46
|
-
function LoginProvider({ children, AUTH_URL, redirectURL = '/', validateTokenRoute, }) {
|
|
47
|
-
const [user, setUser] = (0, react_1.useState)();
|
|
48
|
-
const [userLoaded, setUserLoaded] = (0, react_1.useState)(false);
|
|
49
|
-
const router = (0, router_1.useRouter)();
|
|
50
|
-
const isAuth = !!user;
|
|
51
|
-
(0, react_1.useEffect)(() => {
|
|
52
|
-
const token = (0, cookies_next_1.getCookie)(exports.cookieName);
|
|
53
|
-
if (!token) {
|
|
54
|
-
setUserLoaded(true);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
fetch(`${AUTH_URL}${validateTokenRoute}`, {
|
|
58
|
-
method: 'POST',
|
|
59
|
-
headers: {
|
|
60
|
-
Authorization: `Bearer ${token}`,
|
|
61
|
-
},
|
|
62
|
-
}).then((res) => {
|
|
63
|
-
if (!res.ok) {
|
|
64
|
-
logout();
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
const user = (0, jwt_decode_1.default)(token);
|
|
69
|
-
const img = localStorage.getItem(userImgName);
|
|
70
|
-
setUser({ name: user.name, image: img !== null && img !== void 0 ? img : '', roles: user.roles.map((x) => x.code), token });
|
|
71
|
-
setUserLoaded(true);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}, []);
|
|
75
|
-
function adLogin(loginURL, data, setLoading, setError, captchaToken) {
|
|
76
|
-
setLoading(true);
|
|
77
|
-
fetch(loginURL, {
|
|
78
|
-
method: 'POST',
|
|
79
|
-
body: JSON.stringify(Object.assign(Object.assign({}, data), { cpf: data.cpf.replaceAll(/[.-]/g, ''), captchaToken: captchaToken ? captchaToken : 'hmg' })),
|
|
80
|
-
headers: {
|
|
81
|
-
'Content-Type': 'application/json',
|
|
82
|
-
},
|
|
83
|
-
}).then((res) => {
|
|
84
|
-
if (res.ok) {
|
|
85
|
-
res.json().then((j) => {
|
|
86
|
-
setError(false);
|
|
87
|
-
const token = j.accessToken;
|
|
88
|
-
const user = (0, jwt_decode_1.default)(token);
|
|
89
|
-
setUser({
|
|
90
|
-
name: user.name,
|
|
91
|
-
image: '',
|
|
92
|
-
roles: user.roles.map((x) => x.code),
|
|
93
|
-
token: token,
|
|
94
|
-
});
|
|
95
|
-
(0, cookies_next_1.setCookie)(exports.cookieName, token);
|
|
96
|
-
router.replace(redirectURL).finally(() => setUserLoaded(true));
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
setLoading(false);
|
|
101
|
-
setUserLoaded(true);
|
|
102
|
-
setError(true);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
// chamado no callback de login
|
|
107
|
-
function saveUserData(authData) {
|
|
108
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
const token = authData.ssp_token;
|
|
110
|
-
(0, cookies_next_1.setCookie)(exports.cookieName, token);
|
|
111
|
-
router.replace(redirectURL).finally(() => setUserLoaded(true));
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
function logout() {
|
|
115
|
-
setUserLoaded(false);
|
|
116
|
-
setUser(null);
|
|
117
|
-
(0, cookies_next_1.deleteCookie)(exports.cookieName);
|
|
118
|
-
localStorage.removeItem(userImgName);
|
|
119
|
-
router.replace(redirectURL).finally(() => setUserLoaded(true));
|
|
120
|
-
}
|
|
121
|
-
return react_1.default.createElement(auth_1.AuthContext.Provider, { value: { user, isAuth, userLoaded, login: () => { }, adLogin, logout, saveUserData, type: 'ad' } }, children);
|
|
122
|
-
}
|
|
123
|
-
exports.LoginProvider = LoginProvider;
|