|
@@ -12,18 +12,18 @@ import ParcelsListComponent from "../components/ParcelsListComponent";
|
|
|
import NewParcelComponent from "../components/NewParcelComponent";
|
|
import NewParcelComponent from "../components/NewParcelComponent";
|
|
|
import MarkersComponent from "../components/MarkersComponent";
|
|
import MarkersComponent from "../components/MarkersComponent";
|
|
|
import {Navigate, useNavigate} from "react-router-dom";
|
|
import {Navigate, useNavigate} from "react-router-dom";
|
|
|
|
|
+import jwt_decode from 'jwt-decode';
|
|
|
|
|
|
|
|
export default function () {
|
|
export default function () {
|
|
|
const navigate = useNavigate();
|
|
const navigate = useNavigate();
|
|
|
|
|
|
|
|
const [positions, setPositions] = useState([[51.746732, 19.450587], [51.744347, 19.451015]]);
|
|
const [positions, setPositions] = useState([[51.746732, 19.450587], [51.744347, 19.451015]]);
|
|
|
- /*
|
|
|
|
|
- const [authenticated, setAuthenticated] = useState(false)
|
|
|
|
|
- */
|
|
|
|
|
|
|
+ const [username, setUsername] = useState("...");
|
|
|
|
|
+ const [userData, setUserData] = useState()
|
|
|
|
|
+ const [newParcelComponentSeed, setNewParcelComponentSeed] = useState(1);
|
|
|
|
|
|
|
|
if (!localStorage.getItem("access_token") || !localStorage.getItem("expires_at"))
|
|
if (!localStorage.getItem("access_token") || !localStorage.getItem("expires_at"))
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
localStorage.removeItem("access_token")
|
|
localStorage.removeItem("access_token")
|
|
|
localStorage.removeItem("expires_at")
|
|
localStorage.removeItem("expires_at")
|
|
|
return <Navigate to="/" replace/>
|
|
return <Navigate to="/" replace/>
|
|
@@ -36,24 +36,16 @@ export default function () {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /* useEffect(() => {
|
|
|
|
|
- if (localStorage.getItem("access_token") && localStorage.getItem("expires_at") &&
|
|
|
|
|
- localStorage.getItem("expires_at") < Date.now()) {
|
|
|
|
|
- setAuthenticated(true)
|
|
|
|
|
- } else {
|
|
|
|
|
- setAuthenticated(false)
|
|
|
|
|
- }
|
|
|
|
|
- })*/
|
|
|
|
|
|
|
|
|
|
|
|
+ const decoded = jwt_decode(localStorage.getItem("access_token"));
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
-
|
|
|
|
|
|
|
+ setUsername(decoded.preferred_username)
|
|
|
const params = new URLSearchParams({
|
|
const params = new URLSearchParams({
|
|
|
lon1: 19.3037,
|
|
lon1: 19.3037,
|
|
|
lat1: 51.8194,
|
|
lat1: 51.8194,
|
|
|
lon2: 19.46211,
|
|
lon2: 19.46211,
|
|
|
lat2: 51.74275
|
|
lat2: 51.74275
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
const url = SPRING_SERVER + '/route/nodes?' + params;
|
|
const url = SPRING_SERVER + '/route/nodes?' + params;
|
|
|
|
|
|
|
|
fetch(url, {
|
|
fetch(url, {
|
|
@@ -69,13 +61,27 @@ export default function () {
|
|
|
.catch(error => console.error(error));
|
|
.catch(error => console.error(error));
|
|
|
}, []);
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ const url = SPRING_SERVER + '/api/users/' + decoded.preferred_username;
|
|
|
|
|
+ fetch(url, {
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ "Authorization": "Bearer " + localStorage.getItem("access_token"),
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(response => response.json())
|
|
|
|
|
+ .then(data => {
|
|
|
|
|
+ console.log(data)
|
|
|
|
|
+ setUserData(data)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(error => console.error(error));
|
|
|
|
|
+ }, [])
|
|
|
|
|
+
|
|
|
const onButtonClick = () => {
|
|
const onButtonClick = () => {
|
|
|
localStorage.removeItem("access_token")
|
|
localStorage.removeItem("access_token")
|
|
|
return navigate("/")
|
|
return navigate("/")
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
- /*if (authenticated === true)*/
|
|
|
|
|
return (
|
|
return (
|
|
|
< >
|
|
< >
|
|
|
<div className="flex flex-row h-screen text-900 ">
|
|
<div className="flex flex-row h-screen text-900 ">
|
|
@@ -84,17 +90,13 @@ export default function () {
|
|
|
<div className="flex flex-row align-self-center mt-3 surface-200 w-11 border-round p-2 shadow-5">
|
|
<div className="flex flex-row align-self-center mt-3 surface-200 w-11 border-round p-2 shadow-5">
|
|
|
<Avatar className="align-self-center text-700" icon="pi pi-user" size="xlarge" shape="circle"
|
|
<Avatar className="align-self-center text-700" icon="pi pi-user" size="xlarge" shape="circle"
|
|
|
style={{fontSize: '2.5rem'}}/>
|
|
style={{fontSize: '2.5rem'}}/>
|
|
|
- <div className="font-bold text-2xl pl-3 align-self-center">John Doe</div>
|
|
|
|
|
|
|
+ <div className="font-bold text-2xl pl-3 align-self-center">{username}</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<Button className="col-11 mt-2" onClick={onButtonClick}><i className="pi pi-sign-out"
|
|
<Button className="col-11 mt-2" onClick={onButtonClick}><i className="pi pi-sign-out"
|
|
|
style={{fontSize: '1rem'}}></i></Button>
|
|
style={{fontSize: '1rem'}}></i></Button>
|
|
|
- <ParcelsListComponent parcels={[
|
|
|
|
|
- {'id': 1, 'name': 'package2241', 'address': 'New York 232-421'},
|
|
|
|
|
- {'id': 2, 'name': 'package12437', 'address': 'New York 232-421'},
|
|
|
|
|
- {'id': 2, 'name': 'package12437', 'address': 'New York 232-421'},
|
|
|
|
|
- {'id': 2, 'name': 'package12437', 'address': 'New York 232-421'}]}></ParcelsListComponent>
|
|
|
|
|
- <NewParcelComponent></NewParcelComponent>
|
|
|
|
|
|
|
+ {userData ? <ParcelsListComponent key={newParcelComponentSeed} username={username}></ParcelsListComponent> : <div></div>}
|
|
|
|
|
+ <NewParcelComponent username={username} callback={() => {setNewParcelComponentSeed(Math.random())}}></NewParcelComponent>
|
|
|
</div>
|
|
</div>
|
|
|
<div className="w-full bg-orange-500">
|
|
<div className="w-full bg-orange-500">
|
|
|
|
|
|