mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 01:36:22 +00:00
add option for default new note
This commit is contained in:
62
browser/lib/newNote.js
Normal file
62
browser/lib/newNote.js
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
import { hashHistory } from 'react-router'
|
||||||
|
import dataApi from 'browser/main/lib/dataApi'
|
||||||
|
import ee from 'browser/main/lib/eventEmitter'
|
||||||
|
import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig'
|
||||||
|
|
||||||
|
export function createMarkdownNote (storage, folder, dispatch, location) {
|
||||||
|
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_MARKDOWN')
|
||||||
|
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_ALLNOTE')
|
||||||
|
return dataApi
|
||||||
|
.createNote(storage, {
|
||||||
|
type: 'MARKDOWN_NOTE',
|
||||||
|
folder: folder,
|
||||||
|
title: '',
|
||||||
|
content: ''
|
||||||
|
})
|
||||||
|
.then(note => {
|
||||||
|
const noteHash = note.key
|
||||||
|
dispatch({
|
||||||
|
type: 'UPDATE_NOTE',
|
||||||
|
note: note
|
||||||
|
})
|
||||||
|
|
||||||
|
hashHistory.push({
|
||||||
|
pathname: location.pathname,
|
||||||
|
query: { key: noteHash }
|
||||||
|
})
|
||||||
|
ee.emit('list:jump', noteHash)
|
||||||
|
ee.emit('detail:focus')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createSnippetNote (storage, folder, dispatch, location, config) {
|
||||||
|
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_SNIPPET')
|
||||||
|
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_ALLNOTE')
|
||||||
|
return dataApi
|
||||||
|
.createNote(storage, {
|
||||||
|
type: 'SNIPPET_NOTE',
|
||||||
|
folder: folder,
|
||||||
|
title: '',
|
||||||
|
description: '',
|
||||||
|
snippets: [
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
mode: config.editor.snippetDefaultLanguage || 'text',
|
||||||
|
content: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
.then(note => {
|
||||||
|
const noteHash = note.key
|
||||||
|
dispatch({
|
||||||
|
type: 'UPDATE_NOTE',
|
||||||
|
note: note
|
||||||
|
})
|
||||||
|
hashHistory.push({
|
||||||
|
pathname: location.pathname,
|
||||||
|
query: { key: noteHash }
|
||||||
|
})
|
||||||
|
ee.emit('list:jump', noteHash)
|
||||||
|
ee.emit('detail:focus')
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import modal from 'browser/main/lib/modal'
|
|||||||
import NewNoteModal from 'browser/main/modals/NewNoteModal'
|
import NewNoteModal from 'browser/main/modals/NewNoteModal'
|
||||||
import eventEmitter from 'browser/main/lib/eventEmitter'
|
import eventEmitter from 'browser/main/lib/eventEmitter'
|
||||||
import i18n from 'browser/lib/i18n'
|
import i18n from 'browser/lib/i18n'
|
||||||
|
import { createMarkdownNote, createSnippetNote } from 'browser/lib/newNote'
|
||||||
|
|
||||||
const { remote } = require('electron')
|
const { remote } = require('electron')
|
||||||
const { dialog } = remote
|
const { dialog } = remote
|
||||||
@@ -37,13 +38,21 @@ class NewNoteButton extends React.Component {
|
|||||||
const { location, dispatch, config } = this.props
|
const { location, dispatch, config } = this.props
|
||||||
const { storage, folder } = this.resolveTargetFolder()
|
const { storage, folder } = this.resolveTargetFolder()
|
||||||
|
|
||||||
modal.open(NewNoteModal, {
|
console.log(config)
|
||||||
storage: storage.key,
|
|
||||||
folder: folder.key,
|
if (config.ui.defaultNote === 'MARKDOWN_NOTE') {
|
||||||
dispatch,
|
createMarkdownNote(storage.key, folder.key, dispatch, location)
|
||||||
location,
|
} else if (config.ui.defaultNote === 'SNIPPET_NOTE') {
|
||||||
config
|
createSnippetNote(storage.key, folder.key, dispatch, location, config)
|
||||||
})
|
} else {
|
||||||
|
modal.open(NewNoteModal, {
|
||||||
|
storage: storage.key,
|
||||||
|
folder: folder.key,
|
||||||
|
dispatch,
|
||||||
|
location,
|
||||||
|
config
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resolveTargetFolder () {
|
resolveTargetFolder () {
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import CSSModules from 'browser/lib/CSSModules'
|
import CSSModules from 'browser/lib/CSSModules'
|
||||||
import styles from './NewNoteModal.styl'
|
import styles from './NewNoteModal.styl'
|
||||||
import dataApi from 'browser/main/lib/dataApi'
|
|
||||||
import { hashHistory } from 'react-router'
|
|
||||||
import ee from 'browser/main/lib/eventEmitter'
|
|
||||||
import ModalEscButton from 'browser/components/ModalEscButton'
|
import ModalEscButton from 'browser/components/ModalEscButton'
|
||||||
import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig'
|
|
||||||
import i18n from 'browser/lib/i18n'
|
import i18n from 'browser/lib/i18n'
|
||||||
|
import { createMarkdownNote, createSnippetNote } from 'browser/lib/newNote'
|
||||||
|
|
||||||
class NewNoteModal extends React.Component {
|
class NewNoteModal extends React.Component {
|
||||||
constructor (props) {
|
constructor (props) {
|
||||||
@@ -24,31 +21,10 @@ class NewNoteModal extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleMarkdownNoteButtonClick (e) {
|
handleMarkdownNoteButtonClick (e) {
|
||||||
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_MARKDOWN')
|
|
||||||
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_ALLNOTE')
|
|
||||||
const { storage, folder, dispatch, location } = this.props
|
const { storage, folder, dispatch, location } = this.props
|
||||||
dataApi
|
createMarkdownNote(storage, folder, dispatch, location).then(() => {
|
||||||
.createNote(storage, {
|
setTimeout(this.props.close, 200)
|
||||||
type: 'MARKDOWN_NOTE',
|
})
|
||||||
folder: folder,
|
|
||||||
title: '',
|
|
||||||
content: ''
|
|
||||||
})
|
|
||||||
.then(note => {
|
|
||||||
const noteHash = note.key
|
|
||||||
dispatch({
|
|
||||||
type: 'UPDATE_NOTE',
|
|
||||||
note: note
|
|
||||||
})
|
|
||||||
|
|
||||||
hashHistory.push({
|
|
||||||
pathname: location.pathname,
|
|
||||||
query: { key: noteHash }
|
|
||||||
})
|
|
||||||
ee.emit('list:jump', noteHash)
|
|
||||||
ee.emit('detail:focus')
|
|
||||||
setTimeout(this.props.close, 200)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMarkdownNoteButtonKeyDown (e) {
|
handleMarkdownNoteButtonKeyDown (e) {
|
||||||
@@ -59,38 +35,10 @@ class NewNoteModal extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleSnippetNoteButtonClick (e) {
|
handleSnippetNoteButtonClick (e) {
|
||||||
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_SNIPPET')
|
|
||||||
AwsMobileAnalyticsConfig.recordDynamicCustomEvent('ADD_ALLNOTE')
|
|
||||||
const { storage, folder, dispatch, location, config } = this.props
|
const { storage, folder, dispatch, location, config } = this.props
|
||||||
|
createSnippetNote(storage, folder, dispatch, location, config).then(() => {
|
||||||
dataApi
|
setTimeout(this.props.close, 200)
|
||||||
.createNote(storage, {
|
})
|
||||||
type: 'SNIPPET_NOTE',
|
|
||||||
folder: folder,
|
|
||||||
title: '',
|
|
||||||
description: '',
|
|
||||||
snippets: [
|
|
||||||
{
|
|
||||||
name: '',
|
|
||||||
mode: config.editor.snippetDefaultLanguage || 'text',
|
|
||||||
content: ''
|
|
||||||
}
|
|
||||||
]
|
|
||||||
})
|
|
||||||
.then(note => {
|
|
||||||
const noteHash = note.key
|
|
||||||
dispatch({
|
|
||||||
type: 'UPDATE_NOTE',
|
|
||||||
note: note
|
|
||||||
})
|
|
||||||
hashHistory.push({
|
|
||||||
pathname: location.pathname,
|
|
||||||
query: { key: noteHash }
|
|
||||||
})
|
|
||||||
ee.emit('list:jump', noteHash)
|
|
||||||
ee.emit('detail:focus')
|
|
||||||
setTimeout(this.props.close, 200)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSnippetNoteButtonKeyDown (e) {
|
handleSnippetNoteButtonKeyDown (e) {
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ class UiTab extends React.Component {
|
|||||||
ui: {
|
ui: {
|
||||||
theme: this.refs.uiTheme.value,
|
theme: this.refs.uiTheme.value,
|
||||||
language: this.refs.uiLanguage.value,
|
language: this.refs.uiLanguage.value,
|
||||||
|
defaultNote: this.refs.defaultNote.value,
|
||||||
showCopyNotification: this.refs.showCopyNotification.checked,
|
showCopyNotification: this.refs.showCopyNotification.checked,
|
||||||
confirmDeletion: this.refs.confirmDeletion.checked,
|
confirmDeletion: this.refs.confirmDeletion.checked,
|
||||||
showOnlyRelatedTags: this.refs.showOnlyRelatedTags.checked,
|
showOnlyRelatedTags: this.refs.showOnlyRelatedTags.checked,
|
||||||
@@ -202,6 +203,22 @@ class UiTab extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div styleName='group-section'>
|
||||||
|
<div styleName='group-section-label'>
|
||||||
|
{i18n.__('Default New Note')}
|
||||||
|
</div>
|
||||||
|
<div styleName='group-section-control'>
|
||||||
|
<select value={config.ui.defaultNote}
|
||||||
|
onChange={(e) => this.handleUIChange(e)}
|
||||||
|
ref='defaultNote'
|
||||||
|
>
|
||||||
|
<option value='ALWAYS_ASK'>{i18n.__('Always Ask')}</option>
|
||||||
|
<option value='MARKDOWN_NOTE'>{i18n.__('Markdown Note')}</option>
|
||||||
|
<option value='SNIPPET_NOTE'>{i18n.__('Snippet Note')}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div styleName='group-checkBoxSection'>
|
<div styleName='group-checkBoxSection'>
|
||||||
<label>
|
<label>
|
||||||
<input onChange={(e) => this.handleUIChange(e)}
|
<input onChange={(e) => this.handleUIChange(e)}
|
||||||
|
|||||||
Reference in New Issue
Block a user