diff --git a/browser/main/HomePage/ArticleTopBar.js b/browser/main/HomePage/ArticleTopBar.js index 54dc7085..6fd94095 100644 --- a/browser/main/HomePage/ArticleTopBar.js +++ b/browser/main/HomePage/ArticleTopBar.js @@ -231,8 +231,8 @@ export default class ArticleTopBar extends React.Component { Boost official page - - Discuss + + Issues ) diff --git a/browser/main/index.js b/browser/main/index.js index 4763acc2..092f60d6 100644 --- a/browser/main/index.js +++ b/browser/main/index.js @@ -5,7 +5,7 @@ import React from 'react' import ReactDOM from 'react-dom' require('../styles/main/index.styl') import { openModal } from 'browser/lib/modal' -import Tutorial from './modal/Tutorial' +import OSSAnnounceModal from './modal/OSSAnnounceModal' import activityRecord from 'browser/lib/activityRecord' const electron = require('electron') const ipc = electron.ipcRenderer @@ -59,9 +59,10 @@ ReactDOM.render(( loadingCover.parentNode.removeChild(loadingCover) let status = JSON.parse(localStorage.getItem('status')) if (status == null) status = {} - if (!status.introWatched) { - openModal(Tutorial) - status.introWatched = true + + if (!status.ossAnnounceWatched) { + openModal(OSSAnnounceModal) + status.ossAnnounceWatched = true localStorage.setItem('status', JSON.stringify(status)) } }) diff --git a/browser/main/modal/OSSAnnounceModal.js b/browser/main/modal/OSSAnnounceModal.js new file mode 100644 index 00000000..0902682e --- /dev/null +++ b/browser/main/modal/OSSAnnounceModal.js @@ -0,0 +1,29 @@ +import React, { PropTypes } from 'react' +import ExternalLink from 'browser/components/ExternalLink' + +export default class OSSAnnounceModal extends React.Component { + handleCloseBtnClick (e) { + this.props.close() + } + render () { + return ( +
+ +
Boostnote has been Open-sourced
+ + + https://github.com/BoostIO/Boostnote + + + +
+ ) + } +} + +OSSAnnounceModal.propTypes = { + close: PropTypes.func +} diff --git a/browser/main/modal/Preference/ContactTab.js b/browser/main/modal/Preference/ContactTab.js index 1d0d8073..54713cfb 100644 --- a/browser/main/modal/Preference/ContactTab.js +++ b/browser/main/modal/Preference/ContactTab.js @@ -1,122 +1,26 @@ import React from 'react' import ReactDOM from 'react-dom' -import clientKey from 'browser/lib/clientKey' import linkState from 'browser/lib/linkState' -import _ from 'lodash' -import { request, SERVER_URL } from 'browser/lib/api' - -const FORM_MODE = 'FORM_MODE' -const DONE_MODE = 'DONE_MODE' +import ExternalLink from 'browser/components/ExternalLink' export default class ContactTab extends React.Component { - constructor (props) { - super(props) - - this.state = { - title: '', - content: '', - email: '', - mode: FORM_MODE, - alert: null - } - } - componentDidMount () { let titleInput = ReactDOM.findDOMNode(this.refs.title) if (titleInput != null) titleInput.focus() } - handleBackButtonClick (e) { - this.setState({ - mode: FORM_MODE - }) - } - - handleSendButtonClick (e) { - let input = _.pick(this.state, ['title', 'content', 'email']) - input.clientKey = clientKey.get() - - this.setState({ - alert: { - type: 'info', - message: 'Sending...' - } - }, () => { - request.post(SERVER_URL + 'apis/inquiry') - .send(input) - .then(res => { - console.log('sent') - this.setState({ - title: '', - content: '', - mode: DONE_MODE, - alert: null - }) - }) - .catch(err => { - if (err.code === 'ECONNREFUSED') { - this.setState({ - alert: { - type: 'error', - message: 'Can\'t connect to API server.' - } - }) - } else { - console.error(err) - this.setState({ - alert: { - type: 'error', - message: err.message - } - }) - } - }) - }) - } - render () { - switch (this.state.mode) { - case DONE_MODE: - return ( -
-
-
- Your message has been sent successfully!! -
-
- -
-
- ) - case FORM_MODE: - default: - let alertElement = this.state.alert != null - ? ( -
{this.state.alert.message}
- ) - : null - return ( -
-
Contact form
-
- Your feedback is highly appreciated and will help us to improve our app. :D -
-
- -
-
-