adapt the time context
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| import React, { Dispatch, SetStateAction, useEffect, useState } from 'react'; | import React, { Dispatch, SetStateAction, useEffect, useState } from 'react'; | ||||||
| import { useNavigate } from 'react-router-dom'; |  | ||||||
| import { System } from '../services'; | import { System } from '../services'; | ||||||
|  | import { BackendReturnStatus } from '../types'; | ||||||
|  |  | ||||||
| const TimeContext = React.createContext<{ | const TimeContext = React.createContext<{ | ||||||
|   offset: number; |   offset: number; | ||||||
| @@ -9,19 +9,19 @@ const TimeContext = React.createContext<{ | |||||||
|  |  | ||||||
| export const TimeProvider = ({ children }: { children: any }) => { | export const TimeProvider = ({ children }: { children: any }) => { | ||||||
|   const [offset, setOffset] = useState<number>(0); |   const [offset, setOffset] = useState<number>(0); | ||||||
|   const navigate = useNavigate(); |  | ||||||
|  |  | ||||||
|   useEffect(() => { |   useEffect(() => { | ||||||
|     const estimateTimeOffset = async () => { |     const estimateTimeOffset = async () => { | ||||||
|       System.timestamp().then((timestamp) => { |       System.timestamp().then((response) => { | ||||||
|         // calculate the time offset (not accurate) between the server and the client to show "correct" times |         if (response.status === BackendReturnStatus.Unauthorized) { | ||||||
|         const clientTimeUtc = new Date().getTime() |           // TODO relogin | ||||||
|         const serverTimeUtc = timestamp; |         } else if (response.status === BackendReturnStatus.Ok) { | ||||||
|         setOffset(serverTimeUtc - clientTimeUtc); |           // calculate the time offset (not accurate) between the server and the client to show "correct" times | ||||||
|       }).catch(() => { |           const clientTimeUtc = new Date().getTime() | ||||||
|         setOffset(0); |           const serverTimeUtc = response.timestamp; | ||||||
|         navigate('/'); |           setOffset(serverTimeUtc - clientTimeUtc); | ||||||
|       }); |         } | ||||||
|  |       }) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     estimateTimeOffset(); |     estimateTimeOffset(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user