mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 09:46:22 +00:00
Add color picker dependency; use color picker in storage dialog
This commit is contained in:
@@ -8,6 +8,7 @@ import store from 'browser/main/store'
|
||||
const electron = require('electron')
|
||||
const { shell, remote } = electron
|
||||
const { Menu, MenuItem } = remote
|
||||
import { SketchPicker } from 'react-color'
|
||||
|
||||
class UnstyledFolderItem extends React.Component {
|
||||
constructor (props) {
|
||||
@@ -16,6 +17,7 @@ class UnstyledFolderItem extends React.Component {
|
||||
this.state = {
|
||||
status: 'IDLE',
|
||||
folder: {
|
||||
showColumnPicker: false,
|
||||
color: props.color,
|
||||
name: props.name
|
||||
}
|
||||
@@ -50,22 +52,18 @@ class UnstyledFolderItem extends React.Component {
|
||||
}
|
||||
|
||||
handleColorButtonClick (e) {
|
||||
var menu = new Menu()
|
||||
const folder = Object.assign({}, this.state.folder, { showColumnPicker: true })
|
||||
this.setState({ folder })
|
||||
}
|
||||
|
||||
consts.FOLDER_COLORS.forEach((color, index) => {
|
||||
menu.append(new MenuItem({
|
||||
label: consts.FOLDER_COLOR_NAMES[index],
|
||||
click: (e) => {
|
||||
let { folder } = this.state
|
||||
folder.color = color
|
||||
this.setState({
|
||||
folder
|
||||
})
|
||||
}
|
||||
}))
|
||||
})
|
||||
handleColorChange (color) {
|
||||
const folder = Object.assign({}, this.state.folder, { color: color.hex })
|
||||
this.setState({ folder })
|
||||
}
|
||||
|
||||
menu.popup(remote.getCurrentWindow())
|
||||
handleColorPickerClose (event) {
|
||||
const folder = Object.assign({}, this.state.folder, { showColumnPicker: false })
|
||||
this.setState({ folder })
|
||||
}
|
||||
|
||||
handleCancelButtonClick (e) {
|
||||
@@ -75,12 +73,27 @@ class UnstyledFolderItem extends React.Component {
|
||||
}
|
||||
|
||||
renderEdit (e) {
|
||||
const popover = { position: 'absolute', zIndex: 2 }
|
||||
const cover = {
|
||||
position: 'fixed',
|
||||
top: 0, right: 0, bottom: 0, left: 0
|
||||
}
|
||||
return (
|
||||
<div styleName='folderList-item'>
|
||||
<div styleName='folderList-item-left'>
|
||||
<button styleName='folderList-item-left-colorButton' style={{color: this.state.folder.color}}
|
||||
onClick={(e) => this.handleColorButtonClick(e)}
|
||||
onClick={(e) => !this.state.folder.showColumnPicker && this.handleColorButtonClick(e)}
|
||||
>
|
||||
{ this.state.folder.showColumnPicker ?
|
||||
<div style={ popover }>
|
||||
<div style={ cover }
|
||||
onClick={ () => this.handleColorPickerClose() } />
|
||||
<SketchPicker
|
||||
color={this.state.folder.color}
|
||||
onChange={ (color) => this.handleColorChange(color) }
|
||||
onChangeComplete={ (color) => this.handleColorChange(color) } />
|
||||
</div>
|
||||
: null }
|
||||
<i className='fa fa-square'/>
|
||||
</button>
|
||||
<input styleName='folderList-item-left-nameInput'
|
||||
|
||||
Reference in New Issue
Block a user