Fix onboarding modal & add re-open button (#129)

* Added a button to open the onboarding modal

* Fixed onboarding modal

* added a show-me-around getting-started menu button
master
Ondřej Hruška 7 years ago committed by GitHub
parent 4dc0ddc601
commit cb42dd8497
  1. 1
      app/javascript/glitch/locales/en.json
  2. 2
      app/javascript/mastodon/features/compose/components/compose_form.js
  3. 22
      app/javascript/mastodon/features/getting_started/index.js
  4. 4
      app/javascript/mastodon/features/ui/components/onboarding_modal.js

@ -5,6 +5,7 @@
"layout.desktop": "Desktop", "layout.desktop": "Desktop",
"layout.mobile": "Mobile", "layout.mobile": "Mobile",
"navigation_bar.app_settings": "App settings", "navigation_bar.app_settings": "App settings",
"getting_started.onboarding": "Show me around",
"onboarding.page_one.federation": "{domain} is an 'instance' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.", "onboarding.page_one.federation": "{domain} is an 'instance' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
"onboarding.page_one.welcome": "Welcome to {domain}!", "onboarding.page_one.welcome": "Welcome to {domain}!",
"onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.", "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.",

@ -150,7 +150,7 @@ export default class ComposeForm extends ImmutablePureComponent {
render () { render () {
const { intl, onPaste, showSearch } = this.props; const { intl, onPaste, showSearch } = this.props;
const disabled = this.props.is_submitting; const disabled = this.props.is_submitting;
const maybeEye = this.props.advanced_options.get('do_not_federate') ? ' 👁' : ''; const maybeEye = (this.props.advanced_options && this.props.advanced_options.do_not_federate) ? ' 👁' : '';
const text = [this.props.spoiler_text, countableText(this.props.text), maybeEye].join(''); const text = [this.props.spoiler_text, countableText(this.props.text), maybeEye].join('');
let publishText = ''; let publishText = '';

@ -25,6 +25,7 @@ const messages = defineMessages({
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' }, blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' }, mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' }, info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
show_me_around: { id: 'getting_started.onboarding', defaultMessage: 'Show me around' },
}); });
const mapStateToProps = state => ({ const mapStateToProps = state => ({
@ -48,6 +49,11 @@ export default class GettingStarted extends ImmutablePureComponent {
this.props.dispatch(openModal('SETTINGS', {})); this.props.dispatch(openModal('SETTINGS', {}));
} }
openOnboardingModal = (e) => {
e.preventDefault();
this.props.dispatch(openModal('ONBOARDING'));
}
render () { render () {
const { intl, me, columns, multiColumn } = this.props; const { intl, me, columns, multiColumn } = this.props;
@ -92,6 +98,7 @@ export default class GettingStarted extends ImmutablePureComponent {
{navItems} {navItems}
<ColumnSubheading text={intl.formatMessage(messages.settings_subheading)} /> <ColumnSubheading text={intl.formatMessage(messages.settings_subheading)} />
<ColumnLink icon='book' text={intl.formatMessage(messages.info)} href='/about/more' /> <ColumnLink icon='book' text={intl.formatMessage(messages.info)} href='/about/more' />
<ColumnLink icon='hand-o-right' text={intl.formatMessage(messages.show_me_around)} onClick={this.openOnboardingModal} />
<ColumnLink icon='cog' text={intl.formatMessage(messages.preferences)} href='/settings/preferences' /> <ColumnLink icon='cog' text={intl.formatMessage(messages.preferences)} href='/settings/preferences' />
<ColumnLink icon='cogs' text={intl.formatMessage(messages.settings)} onClick={this.openSettings} /> <ColumnLink icon='cogs' text={intl.formatMessage(messages.settings)} onClick={this.openSettings} />
<ColumnLink icon='sign-out' text={intl.formatMessage(messages.sign_out)} href='/auth/sign_out' method='delete' /> <ColumnLink icon='sign-out' text={intl.formatMessage(messages.sign_out)} href='/auth/sign_out' method='delete' />
@ -100,13 +107,24 @@ export default class GettingStarted extends ImmutablePureComponent {
<div className='getting-started__footer'> <div className='getting-started__footer'>
<div className='static-content getting-started'> <div className='static-content getting-started'>
<p> <p>
<a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/FAQ.md' rel='noopener' target='_blank'><FormattedMessage id='getting_started.faq' defaultMessage='FAQ' /></a> • <a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/User-guide.md' rel='noopener' target='_blank'><FormattedMessage id='getting_started.userguide' defaultMessage='User Guide' /></a> • <a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md' rel='noopener' target='_blank'><FormattedMessage id='getting_started.appsshort' defaultMessage='Apps' /></a> <a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/FAQ.md' rel='noopener' target='_blank'>
<FormattedMessage id='getting_started.faq' defaultMessage='FAQ' />
</a>&nbsp;&nbsp;
<a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/User-guide.md' rel='noopener' target='_blank'>
<FormattedMessage id='getting_started.userguide' defaultMessage='User Guide' />
</a>&nbsp;&nbsp;
<a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md' rel='noopener' target='_blank'>
<FormattedMessage id='getting_started.appsshort' defaultMessage='Apps' />
</a>
</p> </p>
<p> <p>
<FormattedMessage <FormattedMessage
id='getting_started.open_source_notice' id='getting_started.open_source_notice'
defaultMessage='Glitchsoc is open source software, a friendly fork of {Mastodon}. You can contribute or report issues on GitHub at {github}.' defaultMessage='Glitchsoc is open source software, a friendly fork of {Mastodon}. You can contribute or report issues on GitHub at {github}.'
values={{ github: <a href='https://github.com/glitch-soc/mastodon' rel='noopener' target='_blank'>glitch-soc/mastodon</a>, Mastodon: <a href='https://github.com/tootsuite/mastodon' rel='noopener' target='_blank'>Mastodon</a> }} values={{
github: <a href='https://github.com/glitch-soc/mastodon' rel='noopener' target='_blank'>glitch-soc/mastodon</a>,
Mastodon: <a href='https://github.com/tootsuite/mastodon' rel='noopener' target='_blank'>Mastodon</a>,
}}
/> />
</p> </p>
</div> </div>

@ -44,7 +44,7 @@ const PageTwo = ({ me }) => (
<div className='onboarding-modal__page onboarding-modal__page-two'> <div className='onboarding-modal__page onboarding-modal__page-two'>
<div className='figure non-interactive'> <div className='figure non-interactive'>
<div className='pseudo-drawer'> <div className='pseudo-drawer'>
<NavigationBar account={me} /> <NavigationBar onClose={noop} account={me} />
</div> </div>
<ComposeForm <ComposeForm
text='Awoo! #introductions' text='Awoo! #introductions'
@ -83,7 +83,7 @@ const PageThree = ({ me }) => (
/> />
<div className='pseudo-drawer'> <div className='pseudo-drawer'>
<NavigationBar account={me} /> <NavigationBar onClose={noop} account={me} />
</div> </div>
</div> </div>

Loading…
Cancel
Save