import React, { useEffect, useState } from 'react'; import { slide as Menu } from 'react-burger-menu'; import ConfirmLogout from 'components/ConfirmLogout'; import Spinner from 'react-bootstrap/Spinner'; import subscriptionService, { Subscription, } from 'services/subscriptionService'; import constants from 'utils/strings/constants'; import { logoutUser } from 'services/userService'; import { getData, LS_KEYS } from 'utils/storage/localStorage'; import { getToken } from 'utils/common/key'; import { getEndpoint } from 'utils/common/apiUtil'; interface Props { setNavbarIconView; } export default function Sidebar(props: Props) { const [logoutModalView, setLogoutModalView] = useState(false); function showLogoutModal() { setLogoutModalView(true); } function closeLogoutModal() { setLogoutModalView(false); } const [usage, SetUsage] = useState(null); const subscription: Subscription = getData(LS_KEYS.SUBSCRIPTION); const [isOpen, setIsOpen] = useState(false); useEffect(() => { const main = async () => { if (!isOpen) { return; } const usage = await subscriptionService.getUsage(); SetUsage(usage); }; main(); }, [isOpen]); const logout = async () => { setLogoutModalView(false); setIsOpen(false); props.setNavbarIconView(false); logoutUser(); }; function openFeedbackURL() { const feedbackURL: string = getEndpoint() + '/users/feedback?token=' + getToken(); var win = window.open(feedbackURL, '_blank'); win.focus(); } return ( setIsOpen(state.isOpen)} itemListElement="div" >
{constants.SUBSCRIPTION_PLAN}
{subscription?.productID == 'free' ? constants.FREE_SUBSCRIPTION_INFO( subscription?.expiryTime ) : constants.PAID_SUBSCRIPTION_INFO( subscription?.expiryTime )}
{constants.USAGE_DETAILS}
{usage ? ( constants.USAGE_INFO( usage, Math.ceil( Number( subscriptionService.convertBytesToGBs( subscription?.storage ) ) ) ) ) : ( )}
request feature
support
<>
logout
); }