Truth Social
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
||||
import { connect } from 'react-redux';
|
||||
import { Link } from 'react-router-dom';
|
||||
import InlineSVG from 'react-inlinesvg';
|
||||
import { FormattedMessage, defineMessages, useIntl } from 'react-intl';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { Link, withRouter } from 'react-router-dom';
|
||||
|
||||
import { changeSettingImmediate } from 'soapbox/actions/settings';
|
||||
import snackbar from 'soapbox/actions/snackbar';
|
||||
import Icon from 'soapbox/components/icon';
|
||||
import { Text } from 'soapbox/components/ui';
|
||||
|
||||
import Column from '../ui/components/column';
|
||||
|
||||
@@ -15,78 +16,59 @@ const messages = defineMessages({
|
||||
leave: { id: 'developers.leave', defaultMessage: 'You have left developers' },
|
||||
});
|
||||
|
||||
export default @connect()
|
||||
@injectIntl
|
||||
class DevelopersMenu extends React.Component {
|
||||
const Developers = ({ history }) => {
|
||||
const intl = useIntl();
|
||||
const dispatch = useDispatch();
|
||||
|
||||
static contextTypes = {
|
||||
router: PropTypes.object,
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
intl: PropTypes.object.isRequired,
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
leaveDevelopers = e => {
|
||||
const { intl, dispatch } = this.props;
|
||||
const leaveDevelopers = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
dispatch(changeSettingImmediate(['isDeveloper'], false));
|
||||
dispatch(snackbar.success(intl.formatMessage(messages.leave)));
|
||||
history.push('/');
|
||||
};
|
||||
|
||||
this.context.router.history.push('/');
|
||||
e.preventDefault();
|
||||
}
|
||||
return (
|
||||
<Column label={intl.formatMessage(messages.heading)}>
|
||||
<div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2'>
|
||||
<Link to='/developers/apps/create' className='bg-gray-200 p-4 rounded flex flex-col items-center justify-center space-y-2 hover:-translate-y-1 transition-transform'>
|
||||
<InlineSVG src={require('@tabler/icons/icons/apps.svg')} />
|
||||
|
||||
render() {
|
||||
const { intl } = this.props;
|
||||
<Text>
|
||||
<FormattedMessage id='developers.navigation.app_create_label' defaultMessage='Create an app' />
|
||||
</Text>
|
||||
</Link>
|
||||
|
||||
return (
|
||||
<Column heading={intl.formatMessage(messages.heading)}>
|
||||
<div className='dashcounters'>
|
||||
<div className='dashcounter'>
|
||||
<Link to='/developers/apps/create'>
|
||||
<div className='dashcounter__icon'>
|
||||
<Icon src={require('@tabler/icons/icons/apps.svg')} />
|
||||
</div>
|
||||
<div className='dashcounter__label'>
|
||||
<FormattedMessage id='developers.navigation.app_create_label' defaultMessage='Create an app' />
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
<div className='dashcounter'>
|
||||
<Link to='/developers/settings_store'>
|
||||
<div className='dashcounter__icon'>
|
||||
<Icon src={require('@tabler/icons/icons/code-plus.svg')} />
|
||||
</div>
|
||||
<div className='dashcounter__label'>
|
||||
<FormattedMessage id='developers.navigation.settings_store_label' defaultMessage='Settings store' />
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
<div className='dashcounter'>
|
||||
<Link to='/error'>
|
||||
<div className='dashcounter__icon'>
|
||||
<Icon src={require('@tabler/icons/icons/mood-sad.svg')} />
|
||||
</div>
|
||||
<div className='dashcounter__label'>
|
||||
<FormattedMessage id='developers.navigation.intentional_error_label' defaultMessage='Trigger an error' />
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
<div className='dashcounter'>
|
||||
<a href='#' onClick={this.leaveDevelopers}>
|
||||
<div className='dashcounter__icon'>
|
||||
<Icon src={require('@tabler/icons/icons/logout.svg')} />
|
||||
</div>
|
||||
<div className='dashcounter__label'>
|
||||
<FormattedMessage id='developers.navigation.leave_developers_label' defaultMessage='Leave developers' />
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
<Link to='/developers/settings_store' className='bg-gray-200 p-4 rounded flex flex-col items-center justify-center space-y-2 hover:-translate-y-1 transition-transform'>
|
||||
<InlineSVG src={require('@tabler/icons/icons/code-plus.svg')} />
|
||||
|
||||
}
|
||||
<Text>
|
||||
<FormattedMessage id='developers.navigation.settings_store_label' defaultMessage='Settings store' />
|
||||
</Text>
|
||||
</Link>
|
||||
|
||||
<Link to='/error' className='bg-gray-200 p-4 rounded flex flex-col items-center justify-center space-y-2 hover:-translate-y-1 transition-transform'>
|
||||
<InlineSVG src={require('@tabler/icons/icons/mood-sad.svg')} />
|
||||
|
||||
<Text>
|
||||
<FormattedMessage id='developers.navigation.intentional_error_label' defaultMessage='Trigger an error' />
|
||||
</Text>
|
||||
</Link>
|
||||
|
||||
<button onClick={leaveDevelopers} className='bg-gray-200 p-4 rounded flex flex-col items-center justify-center space-y-2 hover:-translate-y-1 transition-transform'>
|
||||
<InlineSVG src={require('@tabler/icons/icons/logout.svg')} />
|
||||
|
||||
<Text>
|
||||
<FormattedMessage id='developers.navigation.leave_developers_label' defaultMessage='Leave developers' />
|
||||
</Text>
|
||||
</button>
|
||||
</div>
|
||||
</Column>
|
||||
);
|
||||
};
|
||||
|
||||
Developers.propTypes = {
|
||||
history: PropTypes.object,
|
||||
};
|
||||
|
||||
export default withRouter(Developers);
|
||||
|
||||
Reference in New Issue
Block a user