tuitio-client-react/src/hooks/useTuitioDecodedToken.ts

24 lines
816 B
TypeScript

// Copyright (c) 2023 Tudor Stanciu
import { useContext, useState, useEffect } from "react";
import { TuitioContext } from "../contexts";
import { camelizeKeys } from "@flare/js-utils";
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 };