'use strict';Object.defineProperty(exports, "__esModule", { value: true });















var _lodash = require('lodash');
var _reduxActions = require('redux-actions'); // Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Parity is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Parity.  If not, see <http://www.gnu.org/licenses/>.
var initialState = { accountsInfo: {}, accounts: {}, contacts: {}, contracts: {}, hardware: {}, hasAccounts: false, hasContacts: false, hasContracts: false, hasHardware: false, visibleAccounts: [] };exports.default =


(0, _reduxActions.handleActions)({
  personalAccountsInfo: function personalAccountsInfo(state, action) {
    var accountsInfo = action.accountsInfo || state.accountsInfo;var
    accounts = action.accounts,contacts = action.contacts,contracts = action.contracts,hardware = action.hardware;

    return Object.assign({}, state, {
      accountsInfo: accountsInfo,
      accounts: accounts,
      contacts: contacts,
      contracts: contracts,
      hasAccounts: Object.keys(accounts).length !== 0,
      hasContacts: Object.keys(contacts).length !== 0,
      hasContracts: Object.keys(contracts).length !== 0,
      hasHardware: Object.keys(hardware).length !== 0 });

  },

  setVisibleAccounts: function setVisibleAccounts(state, action) {
    var addresses = (action.addresses || []).sort();

    if ((0, _lodash.isEqual)(addresses, state.visibleAccounts)) {
      return state;
    }

    return Object.assign({}, state, {
      visibleAccounts: addresses });

  } },
initialState);