import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import './ViewSource.scss'; import cons from '../../../client/state/cons'; import navigation from '../../../client/state/navigation'; import IconButton from '../../atoms/button/IconButton'; import { MenuHeader } from '../../atoms/context-menu/ContextMenu'; import ScrollView from '../../atoms/scroll/ScrollView'; import PopupWindow from '../../molecules/popup-window/PopupWindow'; import CrossIC from '../../../../public/res/ic/outlined/cross.svg'; function ViewSourceBlock({ title, json }) { return (
{title}
          
            {JSON.stringify(json, null, 2)}
          
        
); } ViewSourceBlock.propTypes = { title: PropTypes.string.isRequired, json: PropTypes.shape({}).isRequired, }; function ViewSource() { const [isOpen, setIsOpen] = useState(false); const [event, setEvent] = useState(null); useEffect(() => { const loadViewSource = (e) => { setEvent(e); setIsOpen(true); }; navigation.on(cons.events.navigation.VIEWSOURCE_OPENED, loadViewSource); return () => { navigation.removeListener(cons.events.navigation.VIEWSOURCE_OPENED, loadViewSource); }; }, []); const handleAfterClose = () => { setEvent(null); }; const renderViewSource = () => (
{event.isEncrypted() && }
); return ( setIsOpen(false)} contentOptions={ setIsOpen(false)} tooltip="Close" />} > {event ? renderViewSource() :
} ); } export default ViewSource;