import React, { useEffect, useState } from 'react'; import { slide as Menu } from 'react-burger-menu'; import { CONFIRM_ACTION } from 'components/ConfirmDialog'; import Spinner from 'react-bootstrap/Spinner'; import subscriptionService, { Subscription, } from 'services/subscriptionService'; import constants from 'utils/strings/constants'; 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 isElectron from 'is-electron'; import { collection } from 'services/collectionService'; import { useRouter } from 'next/router'; import RecoveryKeyModal from './RecoveryKeyModal'; interface Props { files: file[]; collections: collection[]; setConfirmAction: any; } export default function Sidebar(props: Props) { const [usage, SetUsage] = useState(null); const subscription: Subscription = getData(LS_KEYS.SUBSCRIPTION); const [isOpen, setIsOpen] = useState(false); const [modalView, setModalView] = useState(false); useEffect(() => { const main = async () => { if (!isOpen) { return; } const usage = await subscriptionService.getUsage(); SetUsage(usage); }; main(); }, [isOpen]); function openFeedbackURL() { const feedbackURL: string = getEndpoint() + '/users/feedback?token=' + getToken(); var win = window.open(feedbackURL, '_blank'); win.focus(); } function exportFiles() { if (isElectron()) { exportService.exportFiles(props.files, props.collections); } else { props.setConfirmAction(CONFIRM_ACTION.DOWNLOAD_APP); } } const router = useRouter(); 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
{constants.EXPORT}
router.push('changePassword')} > {constants.CHANGE_PASSWORD}
<> setModalView(false)} />
setModalView(true)} > {constants.DOWNLOAD_RECOVERY_KEY}
props.setConfirmAction(CONFIRM_ACTION.LOGOUT)} > logout
); }