const {BrowserWindow, Menu, app, shell, dialog} = require('electron')
+const settings = require('electron-settings')
const url = require('url')
+let advNav = settings.get('browserSetting.app.navAdvancedState') || 'normal'
+
let template = [{
label: 'Account',
submenu: [{
}
}
}]
-}, {
+}, {
+ label: 'View',
+ submenu: [{
+ label: 'BTM Amount Unit',
+ }, {
+ label: 'Advanced Navigation',
+ type: 'checkbox',
+ checked: advNav === 'advance',
+ click: (item, focusedWindow) => {
+ if (focusedWindow) {
+ if(advNav === 'advance'){
+ focusedWindow.webContents.send('toggleNavState', 'normal')
+ }else{
+ focusedWindow.webContents.send('toggleNavState', 'advance')
+ }
+ }
+ }
+ },{
+ type: 'separator'
+ },{
+ label: 'Lanugage'
+ }]
+}, {
label: 'Help',
role: 'help',
submenu: [{
app.on('ready', () => {
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
+
+ settings.watch('browserSetting.app.navAdvancedState', newValue => {
+ advNav = newValue
+ menu.items[2].submenu.items[1].checked = ( advNav === 'advance' )
+ })
+
})
app.on('browser-window-created', () => {
-window.ipcRenderer = require('electron').ipcRenderer
\ No newline at end of file
+window.ipcRenderer = require('electron').ipcRenderer
+
+window.settings = require('electron').remote.require('electron-settings')
let win
+
function initialize () {
// const shouldQuit = makeSingleInstance()
// if (shouldQuit) return app.quit()
// const startUrl = 'http://localhost:3000/'
win.loadURL(startUrl)
+ win.webContents.openDevTools()
+
win.on('closed', () => {
win = null
})
import styles from './Navigation.scss'
import {navIcon} from '../../utils'
import Sync from '../Sync/Sync'
+import appAction from '../../../app/actions'
+
class Navigation extends React.Component {
constructor(props) {
this.openTutorial = this.openTutorial.bind(this)
}
+ componentDidMount() {
+ if(window.ipcRenderer){
+ window.ipcRenderer.on('toggleNavState', (event, arg) => {
+ arg === 'advance'? this.props.showNavAdvanced() : this.props.hideNavAdvanced()
+ })
+ }
+ }
+
openTutorial(event) {
event.preventDefault()
this.props.openTutorial()
}
},
(dispatch) => ({
+ showNavAdvanced: () => dispatch(appAction.showNavAdvanced),
+ hideNavAdvanced: () => dispatch(appAction.hideNavAdvanced),
openTutorial: () => dispatch({type: 'OPEN_TUTORIAL'}),
setLang: (event) => {
dispatch({
+const settings = window.settings
+
export const clear = () => {
try {
localStorage.clear()
},
tutorial: state.tutorial
}
+ const browserSetting = {
+ core:{
+ btmAmountUnit: state.core.btmAmountUnit,
+ lang: state.core.lang
+ },
+ app:{
+ navAdvancedState : state.app.navAdvancedState,
+ }
+ }
try {
localStorage.setItem('reduxState', JSON.stringify(exportable))
+ settings.set('browserSetting', browserSetting)
} catch (err) { /* localstorage not available */ }
}