From 51b5d0baf5ee51a8468667096bd18da8e1912b24 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Wed, 14 Jun 2017 16:41:25 +0200 Subject: [PATCH] Converts ClearBrowsingDataPanel into redux component Resolves #9440 Auditors: @bridiver @bsclifton Test Plan: --- .../components/main/clearBrowsingDataPanel.js | 69 +++++++++++++------ app/renderer/components/main/main.js | 9 +-- docs/appActions.md | 12 ++-- js/actions/appActions.js | 18 +++-- js/constants/appConstants.js | 3 +- js/stores/appStore.js | 24 ++++--- 6 files changed, 83 insertions(+), 52 deletions(-) diff --git a/app/renderer/components/main/clearBrowsingDataPanel.js b/app/renderer/components/main/clearBrowsingDataPanel.js index 6e44f73733f..fc78dcdfbcc 100644 --- a/app/renderer/components/main/clearBrowsingDataPanel.js +++ b/app/renderer/components/main/clearBrowsingDataPanel.js @@ -7,6 +7,7 @@ const Immutable = require('immutable') const ipc = require('electron').ipcRenderer // Components +const ReduxComponent = require('../reduxComponent') const Dialog = require('../common/dialog') const Button = require('../common/button') const SwitchControl = require('../common/switchControl') @@ -20,6 +21,7 @@ const { // Actions const appActions = require('../../../../js/actions/appActions') +const windowActions = require('../../../../js/actions/windowActions') // Constants const messages = require('../../../../js/constants/messages') @@ -36,24 +38,47 @@ class ClearBrowsingDataPanel extends React.Component { this.onToggleAutofillData = this.onToggleSetting.bind(this, 'autofillData') this.onToggleSavedSiteSettings = this.onToggleSetting.bind(this, 'savedSiteSettings') this.onClear = this.onClear.bind(this) - this.state = { - clearBrowsingDataDetail: props.clearBrowsingDataDefaults ? props.clearBrowsingDataDefaults : Immutable.Map() - } } - onToggleSetting (setting) { - this.setState(({clearBrowsingDataDetail}) => ({ - clearBrowsingDataDetail: clearBrowsingDataDetail.update(setting, isChecked => !isChecked) - })) + + onToggleSetting (setting, e) { + console.log(e) + appActions.onToggleBrowsingData(setting, true) } + onClear () { - appActions.onClearBrowsingData(this.state.clearBrowsingDataDetail) - this.props.onHide() - let detail = this.state.clearBrowsingDataDetail - if (detail.get('allSiteCookies') && detail.get('browserHistory') && - detail.get('cachedImagesAndFiles')) { + appActions.onClearBrowsingData() + this.onHide() + + if ( + this.props.allSiteCookies && + this.props.browserHistory && + this.props.cachedImagesAndFiles + ) { ipc.send(messages.PREFS_RESTART) } } + + onHide () { + windowActions.setClearBrowsingDataPanelVisible(false) + } + + mergeProps (state, ownProps) { + const data = state.get('clearBrowsingDataDefaults', Immutable.Map()) + + const props = {} + props.allSiteCookies = data.get('allSiteCookies') + props.browserHistory = data.get('browserHistory') + props.downloadHistory = data.get('downloadHistory') + props.cachedImagesAndFiles = data.get('cachedImagesAndFiles') + props.savedPasswords = data.get('savedPasswords') + props.allSiteCookies = data.get('allSiteCookies') + props.autocompleteData = data.get('autocompleteData') + props.autofillData = data.get('autofillData') + props.savedSiteSettings = data.get('savedSiteSettings') + + return props + } + render () { return e.stopPropagation()}> @@ -62,45 +87,45 @@ class ClearBrowsingDataPanel extends React.Component {