- {browsers}
+ {
+ this.props.browserNames.map((name, i) => {
+ return
+ })
+ }
-
+
@@ -167,10 +149,10 @@ class ImportBrowserDataPanel extends ImmutableComponent {
}
}
+module.exports = ReduxComponent.connect(ImportBrowserDataPanel)
+
const styles = StyleSheet.create({
dropdownWrapper: {
marginBottom: `calc(${globalStyles.spacing.dialogInsideMargin} / 2)`
}
})
-
-module.exports = ImportBrowserDataPanel
diff --git a/app/renderer/components/main/main.js b/app/renderer/components/main/main.js
index cdbe739aaa1..aa66ca97185 100644
--- a/app/renderer/components/main/main.js
+++ b/app/renderer/components/main/main.js
@@ -77,7 +77,6 @@ class Main extends ImmutableComponent {
this.onHideSiteInfo = this.onHideSiteInfo.bind(this)
this.onHideBraveryPanel = this.onHideBraveryPanel.bind(this)
this.onHideClearBrowsingDataPanel = this.onHideClearBrowsingDataPanel.bind(this)
- this.onHideImportBrowserDataPanel = this.onHideImportBrowserDataPanel.bind(this)
this.onHideWidevinePanel = this.onHideWidevinePanel.bind(this)
this.onHideAutofillAddressPanel = this.onHideAutofillAddressPanel.bind(this)
this.onHideAutofillCreditCardPanel = this.onHideAutofillCreditCardPanel.bind(this)
@@ -452,8 +451,8 @@ class Main extends ImmutableComponent {
})
ipc.on(messages.IMPORTER_LIST, (e, detail) => {
- windowActions.setImportBrowserDataDetail(detail)
- windowActions.setImportBrowserDataSelected({})
+ appActions.setImportBrowserDataDetail(detail)
+ appActions.setImportBrowserDataSelected()
})
// DO NOT ADD TO THIS LIST - see above
@@ -541,10 +540,6 @@ class Main extends ImmutableComponent {
windowActions.setClearBrowsingDataPanelVisible(false)
}
- onHideImportBrowserDataPanel () {
- windowActions.setImportBrowserDataDetail()
- }
-
onHideWidevinePanel () {
windowActions.widevinePanelDetailChanged({
shown: false
@@ -674,7 +669,7 @@ class Main extends ImmutableComponent {
const braveryPanelIsVisible = shieldState.braveShieldsEnabled(activeFrame) &&
this.props.windowState.get('braveryPanelDetail')
const clearBrowsingDataPanelIsVisible = this.props.windowState.getIn(['ui', 'isClearBrowsingDataPanelVisible'])
- const importBrowserDataPanelIsVisible = this.props.windowState.get('importBrowserDataDetail')
+ const importBrowserDataPanelIsVisible = this.props.appState.get('importBrowserDataDetail')
const widevinePanelIsVisible = this.props.windowState.getIn(['widevinePanelDetail', 'shown'])
const autofillAddressPanelIsVisible = this.props.windowState.get('autofillAddressDetail')
const autofillCreditCardPanelIsVisible = this.props.windowState.get('autofillCreditCardDetail')
@@ -743,10 +738,7 @@ class Main extends ImmutableComponent {
}
{
importBrowserDataPanelIsVisible
- ?
+ ?
: null
}
{
diff --git a/docs/state.md b/docs/state.md
index eb37f131b64..d6cf784af86 100644
--- a/docs/state.md
+++ b/docs/state.md
@@ -124,6 +124,21 @@ AppStore
flash: {
enabled: boolean // enable flash
},
+ importBrowserDataDetail: [{
+ cookies: boolean,
+ favorites: boolean,
+ history: boolean,
+ index: string,
+ name: string,
+ type: number
+ }],
+ importBrowserDataSelected: {
+ cookies: boolean,
+ favorites: boolean,
+ history: boolean,
+ index: string,
+ type: number
+ },
menu: {
template: object // used on Windows and by our tests: template object with Menubar control
},
@@ -518,22 +533,7 @@ WindowStore
blocked: Array
},
unloaded: boolean, // true if the tab is unloaded
- }],
- importBrowserDataDetail: [{
- cookies: boolean,
- favorites: boolean,
- history: boolean,
- index: string,
- name: string,
- type: number
- }],
- importBrowserDataSelected: {
- cookies: boolean,
- favorites: boolean,
- history: boolean,
- index: string,
- type: number
- },
+ }]
lastAppVersion: string, // version of the last file that was saved
ledgerInfo: {
address: string, // the BTC wallet address (in base58)
diff --git a/js/actions/appActions.js b/js/actions/appActions.js
index 4cfd9693e74..d8850107f7d 100644
--- a/js/actions/appActions.js
+++ b/js/actions/appActions.js
@@ -607,6 +607,28 @@ const appActions = {
})
},
+ /**
+ * Sets the selected import browser data
+ * @param {Object} selected - selected browser data to import
+ */
+ setImportBrowserDataSelected: function (selected) {
+ dispatch({
+ actionType: appConstants.APP_SET_IMPORT_BROWSER_DATA_SELECTED,
+ selected
+ })
+ },
+
+ /**
+ * Sets the import browser data popup detail
+ * @param {Array} importBrowserDataDetail - list of supported browsers
+ */
+ setImportBrowserDataDetail: function (importBrowserDataDetail) {
+ dispatch({
+ actionType: appConstants.APP_SET_IMPORT_BROWSER_DATA_DETAIL,
+ importBrowserDataDetail
+ })
+ },
+
/**
* Add address data
* @param {object} detail - the address to add as per doc/state.md's autofillAddressDetail
diff --git a/js/actions/windowActions.js b/js/actions/windowActions.js
index a6806fda057..8d7af1bc1a5 100644
--- a/js/actions/windowActions.js
+++ b/js/actions/windowActions.js
@@ -743,28 +743,6 @@ const windowActions = {
})
},
- /**
- * Sets the import browser data popup detail
- * @param {Array} importBrowserDataDetail - list of supported browsers
- */
- setImportBrowserDataDetail: function (importBrowserDataDetail) {
- dispatch({
- actionType: windowConstants.WINDOW_SET_IMPORT_BROWSER_DATA_DETAIL,
- importBrowserDataDetail
- })
- },
-
- /**
- * Sets the selected import browser data
- * @param {Object} selected - selected browser data to import
- */
- setImportBrowserDataSelected: function (selected) {
- dispatch({
- actionType: windowConstants.WINDOW_SET_IMPORT_BROWSER_DATA_SELECTED,
- selected
- })
- },
-
widevineSiteAccessedWithoutInstall: function () {
dispatch({
actionType: windowConstants.WINDOW_WIDEVINE_SITE_ACCESSED_WITHOUT_INSTALL
diff --git a/js/constants/appConstants.js b/js/constants/appConstants.js
index ec1efbfb048..2d6e536ca19 100644
--- a/js/constants/appConstants.js
+++ b/js/constants/appConstants.js
@@ -132,7 +132,9 @@ const appConstants = {
APP_REMOVE_PASSWORD_SITE: _, /** @param {Object} passwordDetail */
APP_CLEAR_PASSWORDS: _,
APP_UPDATE_LOG_OPENED: _,
- APP_URL_BAR_SELECTED_INDEX_CHANGED: _
+ APP_URL_BAR_SELECTED_INDEX_CHANGED: _,
+ APP_SET_IMPORT_BROWSER_DATA_SELECTED: _,
+ APP_SET_IMPORT_BROWSER_DATA_DETAIL: _
}
module.exports = mapValuesByKeys(appConstants)
diff --git a/js/constants/windowConstants.js b/js/constants/windowConstants.js
index aae5ad7a779..1d076279f02 100644
--- a/js/constants/windowConstants.js
+++ b/js/constants/windowConstants.js
@@ -63,8 +63,6 @@ const windowConstants = {
WINDOW_SET_STATE: _,
WINDOW_SET_LAST_ZOOM_PERCENTAGE: _,
WINDOW_SET_CLEAR_BROWSING_DATA_VISIBLE: _,
- WINDOW_SET_IMPORT_BROWSER_DATA_DETAIL: _,
- WINDOW_SET_IMPORT_BROWSER_DATA_SELECTED: _,
WINDOW_SET_AUTOFILL_ADDRESS_DETAIL: _,
WINDOW_SET_AUTOFILL_CREDIT_CARD_DETAIL: _,
WINDOW_SET_BLOCKED_RUN_INSECURE_CONTENT: _,
diff --git a/js/stores/appStore.js b/js/stores/appStore.js
index b04dba5fc7e..723f980ef26 100644
--- a/js/stores/appStore.js
+++ b/js/stores/appStore.js
@@ -707,6 +707,27 @@ const handleAppAction = (action) => {
}
break
}
+ case appConstants.APP_SET_IMPORT_BROWSER_DATA_SELECTED:
+ if (action.selected == null) {
+ appState = appState.delete('importBrowserDataSelected')
+ } else {
+ if (typeof action.selected === 'number') {
+ const detail = appState.getIn(['importBrowserDataDetail', action.selected])
+ appState = appState.set('importBrowserDataSelected', detail)
+ } else {
+ action.selected.forEach((value, key) => {
+ appState = appState.setIn(['importBrowserDataSelected', key], value)
+ })
+ }
+ }
+ break
+ case appConstants.APP_SET_IMPORT_BROWSER_DATA_DETAIL:
+ if (!action.importBrowserDataDetail) {
+ appState = appState.delete('importBrowserDataDetail')
+ } else {
+ appState = appState.set('importBrowserDataDetail', Immutable.fromJS(action.importBrowserDataDetail))
+ }
+ break
case appConstants.APP_ADD_AUTOFILL_ADDRESS:
autofill.addAutofillAddress(action.detail.toJS(),
action.originalDetail.get('guid') === undefined ? '-1' : action.originalDetail.get('guid'))
diff --git a/js/stores/windowStore.js b/js/stores/windowStore.js
index d4a24f5fcf8..1a7a253777b 100644
--- a/js/stores/windowStore.js
+++ b/js/stores/windowStore.js
@@ -529,20 +529,6 @@ const doAction = (action) => {
case windowConstants.WINDOW_SET_CLEAR_BROWSING_DATA_VISIBLE:
windowState = windowState.setIn(['ui', 'isClearBrowsingDataPanelVisible'], action.isVisible)
break
- case windowConstants.WINDOW_SET_IMPORT_BROWSER_DATA_DETAIL:
- if (!action.importBrowserDataDetail) {
- windowState = windowState.delete('importBrowserDataDetail')
- } else {
- windowState = windowState.set('importBrowserDataDetail', Immutable.fromJS(action.importBrowserDataDetail))
- }
- break
- case windowConstants.WINDOW_SET_IMPORT_BROWSER_DATA_SELECTED:
- if (!action.selected) {
- windowState = windowState.delete('importBrowserDataSelected')
- } else {
- windowState = windowState.set('importBrowserDataSelected', Immutable.fromJS(action.selected))
- }
- break
case windowConstants.WINDOW_WIDEVINE_PANEL_DETAIL_CHANGED:
if (!action.widevinePanelDetail) {
windowState = windowState.delete('widevinePanelDetail')