24 lines
815 B
TypeScript
24 lines
815 B
TypeScript
// Copyright (c) 2023 Tudor Stanciu
|
|
|
|
import { useContext, useState, useEffect } from "react";
|
|
import { TuitioContext } from "../contexts";
|
|
import { camelizeKeys } from "@flare/utiliyo";
|
|
import type { TuitioTokenData } from "@flare/tuitio-client";
|
|
|
|
const useTuitioDecodedToken = () => {
|
|
const state = useContext(TuitioContext);
|
|
const [decodedToken, setDecodedToken] = useState<TuitioTokenData>();
|
|
|
|
useEffect(() => {
|
|
if (decodedToken || !state.auth.token) return;
|
|
const decodedTokenBuffer = Buffer.from(state.auth.token, "base64");
|
|
const decodedTokenString = decodedTokenBuffer.toString("utf-8");
|
|
const decoded = camelizeKeys(JSON.parse(decodedTokenString));
|
|
setDecodedToken(decoded);
|
|
}, [decodedToken, state.auth.token]);
|
|
|
|
return { decodedToken };
|
|
};
|
|
|
|
export { useTuitioDecodedToken };
|