Developers: scaffold createApp page at /developers/apps/create

merge-requests/842/head
Alex Gleason 2021-11-02 00:35:35 -05:00
rodzic 1ee87fa7a4
commit a1625308cb
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
4 zmienionych plików z 51 dodań i 4 usunięć

Wyświetl plik

@ -0,0 +1,41 @@
import React from 'react';
import PropTypes from 'prop-types';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import Column from 'soapbox/features/ui/components/column';
import { SimpleForm, TextInput } from 'soapbox/features/forms';
const messages = defineMessages({
heading: { id: 'column.app_create', defaultMessage: 'Create app' },
namePlaceholder: { id: 'app_create.name_placeholder', defaultMessage: 'e.g. \'Soapbox\'' },
});
export default @injectIntl
class CreateApp extends React.Component {
static propTypes = {
intl: PropTypes.object.isRequired,
}
render() {
const { intl } = this.props;
return (
<Column heading={intl.formatMessage(messages.heading)}>
<SimpleForm>
TODO: This page is incomplete
<TextInput
label={<FormattedMessage id='app_create.name_label' defaultMessage='App name' />}
placeholder={intl.formatMessage(messages.namePlaceholder)}
required
/>
<TextInput
label={<FormattedMessage id='app_create.website_label' defaultMessage='Website' />}
placeholder='https://soapbox.pub'
/>
</SimpleForm>
</Column>
);
}
}

Wyświetl plik

@ -23,12 +23,12 @@ class Developers extends React.Component {
<Column heading={intl.formatMessage(messages.heading)}>
<div className='dashcounters'>
<div className='dashcounter'>
<Link to='/error'>
<Link to='/developers/apps/create'>
<div className='dashcounter__icon'>
<Icon src={require('@tabler/icons/icons/mood-sad.svg')} />
<Icon src={require('@tabler/icons/icons/apps.svg')} />
</div>
<div className='dashcounter__label'>
<FormattedMessage id='developers.navigation.intentional_error_label' defaultMessage='Trigger an error' />
<FormattedMessage id='developers.navigation.app_create_label' defaultMessage='Create an app' />
</div>
</Link>
</div>

Wyświetl plik

@ -116,6 +116,7 @@ import {
NewStatus,
IntentionalError,
Developers,
CreateApp,
} from './util/async-components';
// Dummy import, to make sure that <Status /> ends up in the application bundle.
@ -320,8 +321,9 @@ class SwitchingColumnsArea extends React.PureComponent {
<WrappedRoute path='/admin/users' page={AdminPage} component={UserIndex} content={children} exact />
<WrappedRoute path='/info' page={EmptyPage} component={ServerInfo} content={children} />
<WrappedRoute path='/error' page={EmptyPage} component={IntentionalError} content={children} />
<WrappedRoute path='/developers/apps/create' page={DefaultPage} component={CreateApp} content={children} />
<WrappedRoute path='/developers' page={DefaultPage} component={Developers} content={children} />
<WrappedRoute path='/error' page={EmptyPage} component={IntentionalError} content={children} />
<WrappedRoute path='/donate/crypto' publicRoute page={DefaultPage} component={CryptoDonate} content={children} />
<WrappedRoute path='/federation_restrictions' publicRoute page={DefaultPage} component={FederationRestrictions} content={children} />

Wyświetl plik

@ -429,3 +429,7 @@ export function IntentionalError() {
export function Developers() {
return import(/* webpackChunkName: "features/developers" */'../../developers');
}
export function CreateApp() {
return import(/* webpackChunkName: "features/developers" */'../../developers/apps/create');
}