mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-18 13:20:43 +00:00
SPRINT-18: fixed to dashboards, removed and moved around all the things
This commit is contained in:
49
src/qqq/authorization/auth0/CodeSnippet.tsx
Normal file
49
src/qqq/authorization/auth0/CodeSnippet.tsx
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* QQQ - Low-code Application Framework for Engineers.
|
||||
* Copyright (C) 2021-2022. Kingsrook, LLC
|
||||
* 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
||||
* contact@kingsrook.com
|
||||
* https://github.com/Kingsrook/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
interface CodeSnippetProps
|
||||
{
|
||||
code: string;
|
||||
title?: string;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line react/function-component-definition
|
||||
function CodeSnippet({title, code}: CodeSnippetProps): JSX.Element
|
||||
{
|
||||
return (
|
||||
<div className="code-snippet">
|
||||
<span className="code-snippet__title">{title}</span>
|
||||
<div className="code-snippet__container">
|
||||
<div className="code-snippet__wrapper">
|
||||
<pre className="code-snippet__body">{code}</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
CodeSnippet.defaultProps = {
|
||||
title: undefined,
|
||||
};
|
||||
|
||||
export default CodeSnippet;
|
35
src/qqq/authorization/auth0/Loader.tsx
Normal file
35
src/qqq/authorization/auth0/Loader.tsx
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* QQQ - Low-code Application Framework for Engineers.
|
||||
* Copyright (C) 2021-2022. Kingsrook, LLC
|
||||
* 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
||||
* contact@kingsrook.com
|
||||
* https://github.com/Kingsrook/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
function Loader() : JSX.Element
|
||||
{
|
||||
const loadingImg = "https://cdn.auth0.com/blog/hello-auth0/loader.svg";
|
||||
|
||||
return (
|
||||
<div className="loader">
|
||||
<img style={{height: "25px"}} src={loadingImg} alt="Loading..." />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Loader;
|
52
src/qqq/authorization/auth0/Profile.tsx
Normal file
52
src/qqq/authorization/auth0/Profile.tsx
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* QQQ - Low-code Application Framework for Engineers.
|
||||
* Copyright (C) 2021-2022. Kingsrook, LLC
|
||||
* 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
||||
* contact@kingsrook.com
|
||||
* https://github.com/Kingsrook/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import {useAuth0} from "@auth0/auth0-react";
|
||||
import React from "react";
|
||||
import CodeSnippet from "qqq/authorization/auth0/CodeSnippet";
|
||||
|
||||
export function Profile()
|
||||
{
|
||||
const {user} = useAuth0();
|
||||
|
||||
if (!user)
|
||||
{
|
||||
console.log("no user");
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="content-layout">
|
||||
<div className="content__body">
|
||||
<div className="profile-grid">
|
||||
<div className="profile__details">
|
||||
<CodeSnippet
|
||||
title="Decoded ID Token"
|
||||
code={JSON.stringify(user, null, 2)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Profile;
|
37
src/qqq/authorization/auth0/ProtectedRoute.tsx
Normal file
37
src/qqq/authorization/auth0/ProtectedRoute.tsx
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* QQQ - Low-code Application Framework for Engineers.
|
||||
* Copyright (C) 2021-2022. Kingsrook, LLC
|
||||
* 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
||||
* contact@kingsrook.com
|
||||
* https://github.com/Kingsrook/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import {withAuthenticationRequired} from "@auth0/auth0-react";
|
||||
import React from "react";
|
||||
import Loader from "qqq/authorization/auth0/Loader";
|
||||
|
||||
// @ts-ignore
|
||||
function ProtectedRoute({component}) : JSX.Element
|
||||
{
|
||||
const Component = withAuthenticationRequired(component, {
|
||||
// eslint-disable-next-line react/no-unstable-nested-components
|
||||
onRedirecting: () => <Loader />,
|
||||
});
|
||||
|
||||
return <Component />;
|
||||
}
|
||||
|
||||
export default ProtectedRoute;
|
Reference in New Issue
Block a user