import React, { useEffect, useState } from 'react'; import { slide as Menu } from 'react-burger-menu'; import ConfirmLogout, { CONFIRM_ACTION } from 'components/ConfirmDialog'; 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'; import exportService from 'services/exportService'; import { file } from 'services/fileService'; import MessageDialog from './MessageDialog'; import isElectron from 'is-electron'; interface Props { files: file[]; } 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); const [messageModalView, setMessageModalView] = 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); logoutUser(); }; function openFeedbackURL() { const feedbackURL: string = getEndpoint() + '/users/feedback?token=' + getToken(); var win = window.open(feedbackURL, '_blank'); win.focus(); } function exportFiles() { if (isElectron()) { exportService.selectDirectory(); } else { setMessageModalView(true); } } 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
<> setMessageModalView(false)} message={constants.ELECTRON_APP_REQUIRED} />
{constants.EXPORT}
<>
logout
); }