import {DepartureTime} from "../../types"; const TOKEN_KEY = "token"; /** * Uloží token do local storage prohlížeče. * * @param token token */ export const storeToken = (token: string) => { localStorage.setItem(TOKEN_KEY, token); } /** * Vrátí token z local storage, pokud tam je. * * @returns token nebo null */ export const getToken = (): string | null => { return localStorage.getItem(TOKEN_KEY); } /** * Odstraní token z local storage, pokud tam je. */ export const deleteToken = () => { localStorage.removeItem(TOKEN_KEY); } /** * Vrátí human-readable reprezentaci předaného data a času pro zobrazení. * Příklady: * - dnes 10:52 * - 10.05.2023 10:52 */ export function getHumanDateTime(datetime: Date) { let hours = String(datetime.getHours()).padStart(2, '0'); let minutes = String(datetime.getMinutes()).padStart(2, "0"); if (new Date().toDateString() === datetime.toDateString()) { return `dnes ${hours}:${minutes}`; } else { let day = String(datetime.getDate()).padStart(2, '0'); let month = String(datetime.getMonth() + 1).padStart(2, "0"); let year = datetime.getFullYear(); return `${day}.${month}.${year} ${hours}:${minutes}`; } } /** * Vrátí true, pokud je předaný čas větší než aktuální čas. */ export function isInTheFuture(time: DepartureTime) { const now = new Date(); const currentHours = now.getHours(); const currentMinutes = now.getMinutes(); const currentDate = now.toDateString(); const [hours, minutes] = time.split(':').map(Number); if (currentDate === now.toDateString()) { return hours > currentHours || (hours === currentHours && minutes > currentMinutes); } return true; }