text: const { dispatch } = require('../lib/dispatcher')
  const { ipcRenderer } = require('electron')
  
  // Controls the Preferences screen
  module.exports = class PrefsController {
    constructor (state, config) {
      this.state = state
      this.config = config
    }
  
    // Goes to the Preferences screen
    show () {
      const state = this.state
      state.location.go({
        url: 'preferences',
        setup (cb) {
          // initialize preferences
          state.window.title = 'Preferences'
          ipcRenderer.send('setAllowNav', false)
          cb()
        },
        destroy: () => {
          ipcRenderer.send('setAllowNav', true)
        }
      })
    }
  
    // Updates a single property in the saved prefs
    // For example: updatePreferences('isFileHandler', true)
    update (property, value) {
      if (property === 'isFileHandler') ipcRenderer.send('setDefaultFileHandler', value)
      else if (property === 'startup') ipcRenderer.send('setStartup', value)
  
      this.state.saved.prefs[property] = value
      dispatch('stateSaveImmediate')
      dispatch('checkDownloadPath')
    }
  }
  