mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
bumpup react (0.13.3->0.14.0), reacthmr work perfectly
This commit is contained in:
@@ -92,22 +92,24 @@ function remap (state) {
|
|||||||
let folderFilters = filters.filter(filter => filter.type === FOLDER_FILTER)
|
let folderFilters = filters.filter(filter => filter.type === FOLDER_FILTER)
|
||||||
let textFilters = filters.filter(filter => filter.type === TEXT_FILTER)
|
let textFilters = filters.filter(filter => filter.type === TEXT_FILTER)
|
||||||
|
|
||||||
let targetFolders = activeUser.Folders.filter(folder => {
|
if (activeUser.Folders != null) {
|
||||||
return findWhere(folderFilters, {value: folder.name})
|
let targetFolders = activeUser.Folders.filter(folder => {
|
||||||
})
|
return findWhere(folderFilters, {value: folder.name})
|
||||||
status.targetFolders = targetFolders
|
|
||||||
|
|
||||||
if (targetFolders.length > 0) {
|
|
||||||
articles = articles.filter(article => {
|
|
||||||
return findWhere(targetFolders, {id: article.FolderId})
|
|
||||||
})
|
})
|
||||||
}
|
status.targetFolders = targetFolders
|
||||||
if (textFilters.length > 0) {
|
|
||||||
articles = textFilters.reduce((articles, textFilter) => {
|
if (targetFolders.length > 0) {
|
||||||
return articles.filter(article => {
|
articles = articles.filter(article => {
|
||||||
return article.title.match(new RegExp(textFilter.value, 'i')) || article.content.match(new RegExp(textFilter.value, 'i'))
|
return findWhere(targetFolders, {id: article.FolderId})
|
||||||
})
|
})
|
||||||
}, articles)
|
}
|
||||||
|
if (textFilters.length > 0) {
|
||||||
|
articles = textFilters.reduce((articles, textFilter) => {
|
||||||
|
return articles.filter(article => {
|
||||||
|
return article.title.match(new RegExp(textFilter.value, 'i')) || article.content.match(new RegExp(textFilter.value, 'i'))
|
||||||
|
})
|
||||||
|
}, articles)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Grab active article
|
// Grab active article
|
||||||
|
|||||||
@@ -33,5 +33,8 @@ export default class ArticleTopBar extends React.Component {
|
|||||||
|
|
||||||
ArticleTopBar.propTypes = {
|
ArticleTopBar.propTypes = {
|
||||||
search: PropTypes.string,
|
search: PropTypes.string,
|
||||||
dispatch: PropTypes.func
|
dispatch: PropTypes.func,
|
||||||
|
status: PropTypes.shape({
|
||||||
|
search: PropTypes.string
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,10 +61,13 @@
|
|||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
var scriptUrl = process.env.BOOST_ENV === 'development'
|
||||||
|
? 'http://localhost:8080/assets/bundle.js'
|
||||||
|
: '../../compiled/main.js'
|
||||||
|
var scriptEl=document.createElement('script')
|
||||||
|
scriptEl.setAttribute("type","text/javascript")
|
||||||
|
scriptEl.setAttribute("src", scriptUrl)
|
||||||
|
document.getElementsByTagName("head")[0].appendChild(scriptEl)
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src='../../compiled/main.js'></script>
|
|
||||||
<!--
|
|
||||||
<script src="http://localhost:8080/assets/main.js"></script>
|
|
||||||
-->
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import SignupPage from './SignupPage'
|
|||||||
import HomePage from './HomePage'
|
import HomePage from './HomePage'
|
||||||
import auth from 'boost/auth'
|
import auth from 'boost/auth'
|
||||||
import store, { devToolElement } from 'boost/store'
|
import store, { devToolElement } from 'boost/store'
|
||||||
|
let ReactDOM = require('react-dom')
|
||||||
require('../styles/main/index.styl')
|
require('../styles/main/index.styl')
|
||||||
|
|
||||||
function onlyUser (state, replaceState) {
|
function onlyUser (state, replaceState) {
|
||||||
@@ -28,10 +29,10 @@ let routes = (
|
|||||||
|
|
||||||
let el = document.getElementById('content')
|
let el = document.getElementById('content')
|
||||||
|
|
||||||
React.render((
|
ReactDOM.render((
|
||||||
<div>
|
<div>
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
{() => <Router>{routes}</Router>}
|
<Router>{routes}</Router>
|
||||||
</Provider>
|
</Provider>
|
||||||
{devToolElement}
|
{devToolElement}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ body
|
|||||||
color textColor
|
color textColor
|
||||||
font-size fontSize
|
font-size fontSize
|
||||||
font-weight 400
|
font-weight 400
|
||||||
|
|
||||||
button, input, select
|
button, input, select
|
||||||
font-family "Lato"
|
font-family "Lato"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import shell from 'shell'
|
import shell from 'shell'
|
||||||
import React, { PropTypes } from 'react'
|
var React = require('react')
|
||||||
|
var { PropTypes } = React
|
||||||
import markdown from 'boost/markdown'
|
import markdown from 'boost/markdown'
|
||||||
|
var ReactDOM = require('react-dom')
|
||||||
|
|
||||||
function handleAnchorClick (e) {
|
function handleAnchorClick (e) {
|
||||||
shell.openExternal(e.target.href)
|
shell.openExternal(e.target.href)
|
||||||
@@ -25,7 +27,7 @@ export default class MarkdownPreview extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addListener () {
|
addListener () {
|
||||||
var anchors = React.findDOMNode(this).querySelectorAll('a')
|
var anchors = ReactDOM.findDOMNode(this).querySelectorAll('a')
|
||||||
|
|
||||||
for (var i = 0; i < anchors.length; i++) {
|
for (var i = 0; i < anchors.length; i++) {
|
||||||
anchors[i].addEventListener('click', handleAnchorClick)
|
anchors[i].addEventListener('click', handleAnchorClick)
|
||||||
@@ -33,7 +35,7 @@ export default class MarkdownPreview extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
removeListener () {
|
removeListener () {
|
||||||
var anchors = React.findDOMNode(this).querySelectorAll('a')
|
var anchors = ReactDOM.findDOMNode(this).querySelectorAll('a')
|
||||||
|
|
||||||
for (var i = 0; i < anchors.length; i++) {
|
for (var i = 0; i < anchors.length; i++) {
|
||||||
anchors[i].removeEventListener('click', handleAnchorClick)
|
anchors[i].removeEventListener('click', handleAnchorClick)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { PropTypes, findDOMNode } from 'react'
|
import React, { PropTypes } from 'react'
|
||||||
import { connect, Provider } from 'react-redux'
|
import { connect, Provider } from 'react-redux'
|
||||||
import auth from 'boost/auth'
|
import auth from 'boost/auth'
|
||||||
import linkState from 'boost/linkState'
|
import linkState from 'boost/linkState'
|
||||||
@@ -6,6 +6,7 @@ import Select from 'react-select'
|
|||||||
import api from 'boost/api'
|
import api from 'boost/api'
|
||||||
import ProfileImage from 'boost/components/ProfileImage'
|
import ProfileImage from 'boost/components/ProfileImage'
|
||||||
import store from 'boost/store'
|
import store from 'boost/store'
|
||||||
|
var { findDOMNode } = require('react-dom')
|
||||||
|
|
||||||
const PROFILE = 'PROFILE'
|
const PROFILE = 'PROFILE'
|
||||||
const PREFERENCES = 'PREFERENCES'
|
const PREFERENCES = 'PREFERENCES'
|
||||||
@@ -420,7 +421,7 @@ export default class PreferencesModal extends React.Component {
|
|||||||
render () {
|
render () {
|
||||||
return (
|
return (
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
{() => <RootComponent/>}
|
<RootComponent/>
|
||||||
</Provider>
|
</Provider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
let ReactDOM = require('react-dom')
|
||||||
|
|
||||||
class ModalBase extends React.Component {
|
class ModalBase extends React.Component {
|
||||||
constructor (props) {
|
constructor (props) {
|
||||||
@@ -28,7 +29,7 @@ class ModalBase extends React.Component {
|
|||||||
|
|
||||||
let el = document.createElement('div')
|
let el = document.createElement('div')
|
||||||
document.body.appendChild(el)
|
document.body.appendChild(el)
|
||||||
let modalBase = React.render(<ModalBase/>, el)
|
let modalBase = ReactDOM.render(<ModalBase/>, el)
|
||||||
|
|
||||||
export function openModal (component, props) {
|
export function openModal (component, props) {
|
||||||
if (modalBase == null) { return }
|
if (modalBase == null) { return }
|
||||||
|
|||||||
20
package.json
20
package.json
@@ -4,8 +4,8 @@
|
|||||||
"description": "Boost App",
|
"description": "Boost App",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "electron ./main.js",
|
"start": "BOOST_ENV=development electron ./main.js",
|
||||||
"webpack": "webpack-dev-server --inline --config webpack.config.js",
|
"webpack": "webpack-dev-server --hot --inline --config webpack.config.js",
|
||||||
"compile": "NODE_ENV=production webpack --config webpack.config.production.js",
|
"compile": "NODE_ENV=production webpack --config webpack.config.production.js",
|
||||||
"build": "electron-packager ./ Boost $npm_package_config_platform $npm_package_config_version $npm_package_config_ignore --overwrite",
|
"build": "electron-packager ./ Boost $npm_package_config_platform $npm_package_config_version $npm_package_config_ignore --overwrite",
|
||||||
"codesign": "codesign --verbose --deep --force --sign \"MAISIN solutions Inc.\" Boost-darwin-x64/Boost.app"
|
"codesign": "codesign --verbose --deep --force --sign \"MAISIN solutions Inc.\" Boost-darwin-x64/Boost.app"
|
||||||
@@ -45,12 +45,6 @@
|
|||||||
"md5": "^2.0.0",
|
"md5": "^2.0.0",
|
||||||
"moment": "^2.10.3",
|
"moment": "^2.10.3",
|
||||||
"node-notifier": "^4.2.3",
|
"node-notifier": "^4.2.3",
|
||||||
"react": "^0.13.3",
|
|
||||||
"react-redux": "^3.1.0",
|
|
||||||
"react-router": "^1.0.0-rc1",
|
|
||||||
"react-select": "^0.6.10",
|
|
||||||
"redux": "^3.0.2",
|
|
||||||
"reflux": "^0.2.8",
|
|
||||||
"socket.io-client": "^1.3.6",
|
"socket.io-client": "^1.3.6",
|
||||||
"superagent": "^1.2.0",
|
"superagent": "^1.2.0",
|
||||||
"superagent-promise": "^1.0.3"
|
"superagent-promise": "^1.0.3"
|
||||||
@@ -62,10 +56,15 @@
|
|||||||
"electron-packager": "^5.1.0",
|
"electron-packager": "^5.1.0",
|
||||||
"electron-prebuilt": "^0.33.6",
|
"electron-prebuilt": "^0.33.6",
|
||||||
"nib": "^1.1.0",
|
"nib": "^1.1.0",
|
||||||
|
"react": "^0.14.0",
|
||||||
|
"react-dom": "^0.14.0",
|
||||||
|
"react-redux": "^3.1.0",
|
||||||
|
"react-router": "^1.0.0-rc1",
|
||||||
|
"react-select": "^0.6.10",
|
||||||
"react-transform-catch-errors": "^1.0.0",
|
"react-transform-catch-errors": "^1.0.0",
|
||||||
"react-transform-hmr": "^1.0.1",
|
"react-transform-hmr": "^1.0.1",
|
||||||
"redbox-react": "^1.1.1",
|
"redbox-react": "^1.1.1",
|
||||||
"redux-devtools": "^2.1.5",
|
"redux": "^3.0.2",
|
||||||
"standard": "^5.3.1",
|
"standard": "^5.3.1",
|
||||||
"style-loader": "^0.12.4",
|
"style-loader": "^0.12.4",
|
||||||
"stylus": "^0.52.4",
|
"stylus": "^0.52.4",
|
||||||
@@ -74,8 +73,7 @@
|
|||||||
"webpack-dev-server": "^1.12.0"
|
"webpack-dev-server": "^1.12.0"
|
||||||
},
|
},
|
||||||
"standard": {
|
"standard": {
|
||||||
"ignore": [
|
"ignore": [],
|
||||||
],
|
|
||||||
"globals": [
|
"globals": [
|
||||||
"localStorage"
|
"localStorage"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
var webpack = require('webpack')
|
var webpack = require('webpack')
|
||||||
module.exports = {
|
var path = require('path')
|
||||||
entry: {
|
var JsonpTemplatePlugin = webpack.JsonpTemplatePlugin
|
||||||
main: './browser/main/index.js'
|
var FunctionModulePlugin = require('webpack/lib/FunctionModulePlugin')
|
||||||
},
|
var NodeTargetPlugin = require('webpack/lib/node/NodeTargetPlugin')
|
||||||
output: {
|
var ExternalsPlugin = webpack.ExternalsPlugin
|
||||||
filename: '[name].js',
|
var opt = {
|
||||||
sourceMapFilename: '[name].map',
|
path: path.join(__dirname, 'compiled'),
|
||||||
publicPath: 'http://localhost:8090/assets',
|
filename: 'bundle.js',
|
||||||
libraryTarget: 'commonjs2'
|
libraryTarget: 'commonjs2',
|
||||||
},
|
publicPath: 'http://localhost:8080/assets/'
|
||||||
devtool: '#inline-source-map',
|
}
|
||||||
|
var config = {
|
||||||
module: {
|
module: {
|
||||||
loaders: [
|
loaders: [
|
||||||
{
|
{
|
||||||
test: /(\.js|\.jsx)?$/,
|
test: /\.js?$/,
|
||||||
exclude: /(node_modules|bower_components)/,
|
loader: 'babel-loader?cacheDirectory',
|
||||||
loader: 'babel'
|
exclude: /node_modules/
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.styl?$/,
|
test: /\.styl?$/,
|
||||||
@@ -24,29 +25,57 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
debug: true,
|
||||||
|
devtool: 'cheap-module-eval-source-map',
|
||||||
|
entry: [
|
||||||
|
'./browser/main/index.js'
|
||||||
|
],
|
||||||
|
output: opt,
|
||||||
|
resolve: {
|
||||||
|
extensions: ['', '.js', '.jsx'],
|
||||||
|
packageMains: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main']
|
||||||
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpack.HotModuleReplacementPlugin(),
|
new webpack.NoErrorsPlugin(),
|
||||||
new webpack.NoErrorsPlugin()
|
new ExternalsPlugin('commonjs', [
|
||||||
|
'app',
|
||||||
|
'auto-updater',
|
||||||
|
'browser-window',
|
||||||
|
'content-tracing',
|
||||||
|
'dialog',
|
||||||
|
'global-shortcut',
|
||||||
|
'ipc',
|
||||||
|
'menu',
|
||||||
|
'menu-item',
|
||||||
|
'power-monitor',
|
||||||
|
'protocol',
|
||||||
|
'tray',
|
||||||
|
'remote',
|
||||||
|
'web-frame',
|
||||||
|
'clipboard',
|
||||||
|
'crash-reporter',
|
||||||
|
'screen',
|
||||||
|
'shell'
|
||||||
|
]),
|
||||||
|
new NodeTargetPlugin()
|
||||||
],
|
],
|
||||||
externals: [
|
externals: [
|
||||||
'socket.io-client',
|
'socket.io-client',
|
||||||
'md5',
|
'md5',
|
||||||
'superagent',
|
'superagent',
|
||||||
'superagent-promise',
|
'superagent-promise',
|
||||||
'react',
|
|
||||||
'redux',
|
|
||||||
'react-redux',
|
|
||||||
'react-router',
|
|
||||||
'lodash',
|
'lodash',
|
||||||
'redbox-react',
|
|
||||||
'react-transform-hmr',
|
|
||||||
'react-transform-catch-errors',
|
|
||||||
'react-select',
|
|
||||||
'markdown-it',
|
'markdown-it',
|
||||||
'moment'
|
'moment'
|
||||||
],
|
]
|
||||||
resolve: {
|
|
||||||
extensions: ['', '.js', '.jsx', 'styl']
|
|
||||||
},
|
|
||||||
target: 'atom'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.target = function renderer (compiler) {
|
||||||
|
compiler.apply(
|
||||||
|
new JsonpTemplatePlugin(opt),
|
||||||
|
new FunctionModulePlugin(opt)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = config
|
||||||
|
|
||||||
|
|||||||
@@ -43,16 +43,9 @@ module.exports = {
|
|||||||
'md5',
|
'md5',
|
||||||
'superagent',
|
'superagent',
|
||||||
'superagent-promise',
|
'superagent-promise',
|
||||||
// 'react',
|
|
||||||
// 'redux',
|
|
||||||
// 'react-redux',
|
|
||||||
// 'react-router',
|
|
||||||
// 'react-select',
|
|
||||||
'lodash',
|
'lodash',
|
||||||
'markdown-it',
|
'markdown-it',
|
||||||
'moment',
|
'moment'
|
||||||
'fs',
|
|
||||||
'path'
|
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: ['', '.js', '.jsx', 'styl']
|
extensions: ['', '.js', '.jsx', 'styl']
|
||||||
|
|||||||
Reference in New Issue
Block a user