mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-18 20:21:44 +00:00
Going LIte
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import React, { PropTypes } from 'react'
|
||||
import linkState from 'boost/linkState'
|
||||
import api from 'boost/api'
|
||||
import { pick } from 'lodash'
|
||||
import keygen from 'boost/keygen'
|
||||
import { createFolder } from 'boost/actions'
|
||||
import store from 'boost/store'
|
||||
|
||||
export default class CreateNewFolder extends React.Component {
|
||||
constructor (props) {
|
||||
@@ -9,54 +10,42 @@ export default class CreateNewFolder extends React.Component {
|
||||
|
||||
this.state = {
|
||||
name: '',
|
||||
public: false
|
||||
alert: null
|
||||
}
|
||||
}
|
||||
|
||||
handleCloseButton (e) {
|
||||
this.props.close()
|
||||
}
|
||||
|
||||
handlePublicButtonClick (value) {
|
||||
console.log(value)
|
||||
return e => {
|
||||
this.setState({public: value})
|
||||
}
|
||||
}
|
||||
|
||||
handleConfirmButton (e) {
|
||||
let { user, close } = this.props
|
||||
let input = pick(this.state, ['public', 'name'])
|
||||
input.UserId = user.id
|
||||
let { close } = this.props
|
||||
let key = keygen()
|
||||
let name = this.state.name
|
||||
let input = {
|
||||
name,
|
||||
key,
|
||||
createAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
// random number (0-7)
|
||||
color: Math.round(Math.random() * 7)
|
||||
}
|
||||
|
||||
api.createFolder(input)
|
||||
.then(res => {
|
||||
console.log(res.body)
|
||||
close()
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
var alert
|
||||
if (err.code === 'ECONNREFUSED') {
|
||||
alert = {
|
||||
type: 'error',
|
||||
message: 'Can\'t connect to API server.'
|
||||
}
|
||||
} else if (err.status != null) {
|
||||
alert = {
|
||||
type: 'error',
|
||||
message: err.response.body.message
|
||||
}
|
||||
} else {
|
||||
throw err
|
||||
}
|
||||
|
||||
this.setState({alert: alert})
|
||||
})
|
||||
store.dispatch(createFolder(input))
|
||||
try {
|
||||
} catch (e) {
|
||||
this.setState({alert: {
|
||||
type: 'error',
|
||||
message: e.message
|
||||
}})
|
||||
return
|
||||
}
|
||||
close()
|
||||
}
|
||||
|
||||
render () {
|
||||
let alert = this.state.alert
|
||||
let alertEl = alert != null ? (
|
||||
let alertElement = alert != null ? (
|
||||
<p className={`alert ${alert.type}`}>
|
||||
{alert.message}
|
||||
</p>
|
||||
@@ -69,13 +58,7 @@ export default class CreateNewFolder extends React.Component {
|
||||
<div className='title'>Create new folder</div>
|
||||
|
||||
<input className='ipt' type='text' valueLink={this.linkState('name')} placeholder='Enter folder name'/>
|
||||
|
||||
<div className='public'>
|
||||
<button className={!this.state.public ? 'active' : ''} onClick={e => this.handlePublicButtonClick(false)(e)}>Private</button>
|
||||
<span className='divider'>/</span>
|
||||
<button className={this.state.public ? 'active' : ''} onClick={e => this.handlePublicButtonClick(true)(e)}>Public</button>
|
||||
</div>
|
||||
{alertEl}
|
||||
{alertElement}
|
||||
|
||||
<button onClick={e => this.handleConfirmButton(e)} className='confirmBtn'>Create</button>
|
||||
</div>
|
||||
@@ -84,7 +67,6 @@ export default class CreateNewFolder extends React.Component {
|
||||
}
|
||||
|
||||
CreateNewFolder.propTypes = {
|
||||
user: PropTypes.shape(),
|
||||
close: PropTypes.func
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
import React, { PropTypes } from 'react'
|
||||
import React from 'react'
|
||||
import linkState from 'boost/linkState'
|
||||
import remote from 'remote'
|
||||
import ipc from 'ipc'
|
||||
|
||||
export default class AppSettingTab extends React.Component {
|
||||
constructor (props) {
|
||||
super(props)
|
||||
let keymap = remote.getGlobal('keymap')
|
||||
|
||||
this.state = {
|
||||
toggleFinder: keymap.toggleFinder
|
||||
}
|
||||
}
|
||||
|
||||
handleSaveButtonClick (e) {
|
||||
ipc.send('hotkeyUpdated', {
|
||||
toggleFinder: this.state.toggleFinder
|
||||
})
|
||||
}
|
||||
|
||||
render () {
|
||||
return (
|
||||
<div className='AppSettingTab content'>
|
||||
@@ -8,10 +26,10 @@ export default class AppSettingTab extends React.Component {
|
||||
<div className='sectionTitle'>Hotkey</div>
|
||||
<div className='sectionInput'>
|
||||
<label>Toggle Finder(popup)</label>
|
||||
<input type='text'/>
|
||||
<input valueLink={this.linkState('toggleFinder')} type='text'/>
|
||||
</div>
|
||||
<div className='sectionConfirm'>
|
||||
<button>Save</button>
|
||||
<button onClick={e => this.handleSaveButtonClick(e)}>Save</button>
|
||||
</div>
|
||||
<div className='description'>
|
||||
<ul>
|
||||
@@ -38,3 +56,5 @@ export default class AppSettingTab extends React.Component {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
AppSettingTab.prototype.linkState = linkState
|
||||
|
||||
@@ -24,21 +24,7 @@ class Preferences extends React.Component {
|
||||
super(props)
|
||||
|
||||
this.state = {
|
||||
currentTab: PROFILE,
|
||||
currentTeamId: props.status.userId,
|
||||
profile: {
|
||||
userInfo: {
|
||||
profileName: props.currentUser.profileName,
|
||||
email: props.currentUser.email,
|
||||
alert: null
|
||||
},
|
||||
password: {
|
||||
currentPassword: '',
|
||||
newPassword: '',
|
||||
confirmation: '',
|
||||
error: null
|
||||
}
|
||||
}
|
||||
currentTab: APP
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,12 +42,8 @@ class Preferences extends React.Component {
|
||||
let content = this.renderContent()
|
||||
|
||||
let tabs = [
|
||||
{target: PROFILE, label: 'Profile'},
|
||||
{target: APP, label: 'Preferences'},
|
||||
{target: HELP, label: 'Help & Feedback'},
|
||||
{target: TEAM, label: 'Team setting'},
|
||||
{target: MEMBER, label: 'Manage member'},
|
||||
{target: FOLDER, label: 'Manage folder'}
|
||||
{target: APP, label: 'Preferences'}
|
||||
// {target: FOLDER, label: 'Manage folder'}
|
||||
]
|
||||
|
||||
let navButtons = tabs.map(tab => (
|
||||
@@ -85,42 +67,12 @@ class Preferences extends React.Component {
|
||||
}
|
||||
|
||||
renderContent () {
|
||||
let currentTeamId = parseInt(this.state.currentTeamId, 10)
|
||||
let teams = [this.props.currentUser].concat(this.props.currentUser.Teams)
|
||||
|
||||
switch (this.state.currentTab) {
|
||||
case APP:
|
||||
return (<AppSettingTab/>)
|
||||
case HELP:
|
||||
return (<HelpTab/>)
|
||||
case TEAM:
|
||||
return (
|
||||
<TeamSettingTab
|
||||
currentTeamId={currentTeamId}
|
||||
teams={teams}
|
||||
switchTeam={teamId => this.switchTeam(teamId)}
|
||||
/>
|
||||
)
|
||||
case MEMBER:
|
||||
return (
|
||||
<MemberSettingTab
|
||||
currentUser={this.props.currentUser}
|
||||
currentTeamId={currentTeamId}
|
||||
teams={teams}
|
||||
switchTeam={teamId => this.switchTeam(teamId)}
|
||||
/>
|
||||
)
|
||||
case FOLDER:
|
||||
return (
|
||||
<FolderSettingTab
|
||||
currentTeamId={currentTeamId}
|
||||
teams={teams}
|
||||
switchTeam={teamId => this.switchTeam(teamId)}
|
||||
/>
|
||||
)
|
||||
case PROFILE:
|
||||
case APP:
|
||||
default:
|
||||
return this.renderProfile()
|
||||
return (<AppSettingTab/>)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user