import React from 'react'; import { connect } from 'react-redux'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import Column from 'mastodon/components/column'; import ColumnHeader from 'mastodon/components/column_header'; import { HotKeys } from 'react-hotkeys'; import { setExplorerData, setExplorerUrl } from 'mastodon/actions/activitypub_explorer'; import DismissableBanner from 'mastodon/components/dismissable_banner'; import { ActivityPubVisualization } from 'activitypub-visualization'; const mapStateToProps = (state) => { return { logs: state.getIn(['activity_log', 'logs']), }; }; export default @connect(mapStateToProps) class ActivityLog extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, }; static propTypes = { dispatch: PropTypes.func.isRequired, multiColumn: PropTypes.bool, }; handleHeaderClick = () => { this.column.scrollTop(); } setRef = c => { this.column = c; } render() { const { dispatch, logs, multiColumn } = this.props; const darkMode = !(document.body && document.body.classList.contains('theme-mastodon-light')); // hijack the toggleHidden shortcut to copy the logs to clipbaord const handlers = { toggleHidden: () => navigator.clipboard.writeText(JSON.stringify(logs, null, 2)), }; const Content = () => { if (logs.length > 0) { return (
{ dispatch(setExplorerUrl(url)); this.context.router.history.push('/activitypub_explorer'); }} showExplorerLink onExplorerLinkClick={(data) => { dispatch(setExplorerData(data)); this.context.router.history.push('/activitypub_explorer'); }} />
) } else { return (
blog, }} />
) } } return (

blog, }} />

); } }