diff --git a/browser/components/TagSelect.js b/browser/components/TagSelect.js index dbbc456f..2e631bef 100644 --- a/browser/components/TagSelect.js +++ b/browser/components/TagSelect.js @@ -1,7 +1,6 @@ import React, { PropTypes } from 'react' import ReactDOM from 'react-dom' import _ from 'lodash' -import linkState from '../lib/linkState' function isNotEmptyString (str) { return _.isString(str) && str.length > 0 @@ -164,5 +163,3 @@ TagSelect.propTypes = { onChange: PropTypes.func, suggestTags: PropTypes.array } - -TagSelect.prototype.linkState = linkState diff --git a/browser/lib/linkState.js b/browser/lib/linkState.js deleted file mode 100644 index 2b874615..00000000 --- a/browser/lib/linkState.js +++ /dev/null @@ -1,36 +0,0 @@ -function getIn (object, path) { - let stack = path.split('.') - while (stack.length > 1) { - object = object[stack.shift()] - } - return object[stack.shift()] -} - -function updateIn (object, path, value) { - let current = object - let stack = path.split('.') - while (stack.length > 1) { - current = current[stack.shift()] - } - current[stack.shift()] = value - return object -} - -function setPartialState (component, path, value) { - component.setState( - updateIn(component.state, path, value)) -} - -export default function linkState (path) { - return { - value: getIn(this.state, path), - requestChange: setPartialState.bind(null, this, path) - } -} - -export function linkState2 (el, path) { - return { - value: getIn(el.state, path), - requestChange: setPartialState.bind(null, el, path) - } -} diff --git a/browser/main/ArticleDetail/index.js b/browser/main/ArticleDetail/index.js index cafc2875..1db13315 100644 --- a/browser/main/ArticleDetail/index.js +++ b/browser/main/ArticleDetail/index.js @@ -2,11 +2,10 @@ import React, { PropTypes } from 'react' import ReactDOM from 'react-dom' import moment from 'moment' import _ from 'lodash' -import linkState from 'browser/lib/linkState' import TagSelect from 'browser/components/TagSelect' import ModeSelect from 'browser/components/ModeSelect' import ShareButton from './ShareButton' -import { openModal, isModalOpen } from 'browser/lib/modal' +import { openModal, isModalOpen } from 'browser/main/lib/modal' import DeleteArticleModal from '../modals/DeleteArticleModal' import ArticleEditor from './ArticleEditor' const electron = require('electron') @@ -338,4 +337,3 @@ ArticleDetail.propTypes = { dispatch: PropTypes.func, repositories: PropTypes.array } -ArticleDetail.prototype.linkState = linkState diff --git a/browser/main/ArticleTopBar.js b/browser/main/ArticleTopBar.js index 9e7c4cc2..bb33becb 100644 --- a/browser/main/ArticleTopBar.js +++ b/browser/main/ArticleTopBar.js @@ -1,107 +1,20 @@ import React, { PropTypes } from 'react' import ReactDOM from 'react-dom' import ExternalLink from 'browser/components/ExternalLink' -import { isModalOpen } from 'browser/lib/modal' import activityRecord from 'browser/lib/activityRecord' -const electron = require('electron') -const ipc = electron.ipcRenderer - -const OSX = global.process.platform === 'darwin' - -const BRAND_COLOR = '#18AF90' - -const searchTutorialElement = ( - - Search some posts!! - {'- Search by tag : #{string}'} - - {'- Search by folder : /{folder_name}\n'} - - {'exact match : //{folder_name}'} - - - - - - -) - -const newPostTutorialElement = ( - - Create a new post!! - - - - - - - -) +const OSX = process.platform === 'darwin' export default class ArticleTopBar extends React.Component { constructor (props) { super(props) - this.saveAllHandler = e => { - if (isModalOpen()) return true - this.handleSaveAllButtonClick(e) - } - this.focusSearchHandler = e => { - if (isModalOpen()) return true - this.focusInput(e) - } - this.newPostHandler = e => { - if (isModalOpen()) return true - this.handleNewPostButtonClick(e) - } - this.state = { isTooltipHidden: true, isLinksDropdownOpen: false } } - componentDidMount () { - this.searchInput = ReactDOM.findDOMNode(this.refs.searchInput) - this.linksButton = ReactDOM.findDOMNode(this.refs.links) - this.showLinksDropdown = e => { - e.preventDefault() - e.stopPropagation() - if (!this.state.isLinksDropdownOpen) { - this.setState({isLinksDropdownOpen: true}) - } - } - // this.linksButton.addEventListener('click', this.showLinksDropdown) - this.hideLinksDropdown = e => { - if (this.state.isLinksDropdownOpen) { - this.setState({isLinksDropdownOpen: false}) - } - } - document.addEventListener('click', this.hideLinksDropdown) - - // ipc.on('top-save-all', this.saveAllHandler) - ipc.on('top-focus-search', this.focusSearchHandler) - ipc.on('top-new-post', this.newPostHandler) - } - - componentWillUnmount () { - document.removeEventListener('click', this.hideLinksDropdown) - this.linksButton.removeEventListener('click', this.showLinksDropdown()) - - // ipc.removeListener('top-save-all', this.saveAllHandler) - ipc.removeListener('top-focus-search', this.focusSearchHandler) - ipc.removeListener('top-new-post', this.newPostHandler) - } - handleTooltipRequest (e) { if (this.searchInput.value.length === 0 && (document.activeElement === this.searchInput)) { this.setState({isTooltipHidden: false}) @@ -126,10 +39,6 @@ export default class ArticleTopBar extends React.Component { } handleSearchChange (e) { - let { dispatch } = this.props - - // dispatch(setSearchFilter(e.target.value)) - this.handleTooltipRequest() } handleSearchClearButton (e) { @@ -206,22 +115,6 @@ export default class ArticleTopBar extends React.Component { : null } - - {false ? ( -
-
this.handleTutorialButtonClick(e)} className='clickJammer'/> - - Also, you can open Finder!! - - - - Hope you to enjoy our app :D - Press any key or click to escape tutorial mode - -
-
- ) : null} -
) } diff --git a/browser/main/SideNav/RepositorySection.js b/browser/main/SideNav/RepositorySection.js index e3ba2600..617ce8a5 100644 --- a/browser/main/SideNav/RepositorySection.js +++ b/browser/main/SideNav/RepositorySection.js @@ -57,7 +57,7 @@ class RepositorySection extends React.Component { handleContextButtonClick (e) { e.stopPropagation() - var menu = new Menu() + let menu = new Menu() menu.append(new MenuItem({ label: 'New Folder', click: () => this.handleNewFolderButtonClick() diff --git a/browser/main/SideNav/index.js b/browser/main/SideNav/index.js index 6cd56c8a..4c062e05 100644 --- a/browser/main/SideNav/index.js +++ b/browser/main/SideNav/index.js @@ -1,7 +1,7 @@ import React, { PropTypes } from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './SideNav.styl' -import { openModal } from 'browser/lib/modal' +import { openModal } from 'browser/main/lib/modal' import Preferences from '../modals/Preferences' import RepositorySection from './RepositorySection' import NewRepositoryModal from '../modals/NewRepositoryModal' diff --git a/browser/lib/modal.js b/browser/main/lib/modal.js similarity index 84% rename from browser/lib/modal.js rename to browser/main/lib/modal.js index 15273f69..e1026fe5 100644 --- a/browser/lib/modal.js +++ b/browser/main/lib/modal.js @@ -1,7 +1,7 @@ import React from 'react' +import { Provider } from 'react-redux' import ReactDOM from 'react-dom' - -const remote = require('electron').remote +import store from '../store' class ModalBase extends React.Component { constructor (props) { @@ -15,8 +15,6 @@ class ModalBase extends React.Component { close () { if (modalBase != null) modalBase.setState({component: null, componentProps: null, isHidden: true}) - - remote.getCurrentWebContents().send('list-focus') } render () { @@ -24,7 +22,9 @@ class ModalBase extends React.Component {
this.close(e)} className='modalBack'/> {this.state.component == null ? null : ( - + + + )}
) diff --git a/browser/main/modals/Preferences/AppSettingTab.js b/browser/main/modals/Preferences/AppSettingTab.js index d1656fb0..51ddef2e 100644 --- a/browser/main/modals/Preferences/AppSettingTab.js +++ b/browser/main/modals/Preferences/AppSettingTab.js @@ -1,5 +1,4 @@ import React, { PropTypes } from 'react' -import linkState from 'browser/lib/linkState' import fetchConfig from 'browser/lib/fetchConfig' import hljsTheme from 'browser/lib/hljsThemes' @@ -235,7 +234,6 @@ export default class AppSettingTab extends React.Component { } } -AppSettingTab.prototype.linkState = linkState AppSettingTab.propTypes = { user: PropTypes.shape({ name: PropTypes.string diff --git a/browser/main/modals/Preferences/ContactTab.js b/browser/main/modals/Preferences/ContactTab.js index aad8c331..47e6bf31 100644 --- a/browser/main/modals/Preferences/ContactTab.js +++ b/browser/main/modals/Preferences/ContactTab.js @@ -1,6 +1,5 @@ import React from 'react' import ReactDOM from 'react-dom' -import linkState from 'browser/lib/linkState' import ExternalLink from 'browser/components/ExternalLink' export default class ContactTab extends React.Component { @@ -20,5 +19,3 @@ export default class ContactTab extends React.Component { ) } } - -ContactTab.prototype.linkState = linkState diff --git a/browser/main/modals/Preferences/index.js b/browser/main/modals/Preferences/index.js index a399afd2..77222077 100644 --- a/browser/main/modals/Preferences/index.js +++ b/browser/main/modals/Preferences/index.js @@ -1,10 +1,8 @@ import React, { PropTypes } from 'react' -import { connect, Provider } from 'react-redux' -import linkState from 'browser/lib/linkState' -import store from 'browser/main/store' +import { connect } from 'react-redux' import AppSettingTab from './AppSettingTab' import ContactTab from './ContactTab' -import { closeModal } from 'browser/lib/modal' +import { closeModal } from 'browser/main/lib/modal' const APP = 'APP' const CONTACT = 'CONTACT' @@ -83,15 +81,4 @@ Preferences.propTypes = { dispatch: PropTypes.func } -Preferences.prototype.linkState = linkState - -let RootComponent = connect((x) => x)(Preferences) -export default class PreferencesModal extends React.Component { - render () { - return ( - - - - ) - } -} +export default connect((x) => x)(Preferences)