import { NULL_TOPIC } from '@ethersphere/bee-js' import { Box } from '@mui/material' import { ReactElement, useContext, useState } from 'react' import { useNavigate } from 'react-router' import PlusSquare from 'remixicon-react/AddBoxLineIcon' import Trash from 'remixicon-react/DeleteBin7LineIcon' import Download from 'remixicon-react/Download2LineIcon' import Info from 'remixicon-react/InformationLineIcon' import ExpandableList from '../../../components/ExpandableList' import ExpandableListItem from '../../../components/ExpandableListItem' import ExpandableListItemActions from '../../../components/ExpandableListItemActions' import ExpandableListItemKey from '../../../components/ExpandableListItemKey' import { SwarmButton } from '../../../components/SwarmButton' import TroubleshootConnectionCard from '../../../components/TroubleshootConnectionCard' import { CheckState, Context as BeeContext } from '../../../providers/Bee' import { Context as IdentityContext, Identity } from '../../../providers/Feeds' import { ROUTES } from '../../../routes' import { formatEnum } from '../../../utils' import { persistIdentitiesWithoutUpdate } from '../../../utils/identity' import { DeleteFeedDialog } from '../../feeds/DeleteFeedDialog' import { ExportFeedDialog } from '../../feeds/ExportFeedDialog' import { ImportFeedDialog } from '../../feeds/ImportFeedDialog' import { AccountNavigation } from '../AccountNavigation' import { Header } from '../Header' export function AccountFeeds(): ReactElement { const { identities, setIdentities } = useContext(IdentityContext) const { status } = useContext(BeeContext) const navigate = useNavigate() const [selectedIdentity, setSelectedIdentity] = useState(null) const [showImport, setShowImport] = useState(false) const [showExport, setShowExport] = useState(false) const [showDelete, setShowDelete] = useState(false) function createNewFeed() { return navigate(ROUTES.ACCOUNT_FEEDS_NEW) } function viewFeed(uuid: string) { navigate(ROUTES.ACCOUNT_FEEDS_VIEW.replace(':uuid', uuid)) } function onDialogClose() { setShowDelete(false) setShowExport(false) setShowImport(false) setSelectedIdentity(null) } function onDelete(identity: Identity) { onDialogClose() const updatedFeeds = identities.filter(x => x.uuid !== identity.uuid) setIdentities(updatedFeeds) persistIdentitiesWithoutUpdate(updatedFeeds) } function onShowExport(identity: Identity) { setSelectedIdentity(identity) setShowExport(true) } function onShowDelete(identity: Identity) { setSelectedIdentity(identity) setShowDelete(true) } if (status.all === CheckState.ERROR) return return ( <>
{showImport && setShowImport(false)} />} {showExport && selectedIdentity && } {showDelete && selectedIdentity && ( onDelete(identity)} /> )} Create New Feed setShowImport(true)}> Import Feed {identities.map((x, i) => ( {x.feedHash && } viewFeed(x.uuid)} iconType={Info}> View Feed Page onShowExport(x)} iconType={Download}> Export... onShowDelete(x)} iconType={Trash}> Delete... ))} ) }