From ce9b72bf07ec96d442dfe416d0ff4ef50a18b779 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 31 Oct 2017 22:10:08 +0100 Subject: [PATCH] Add ability to delete all cookies --- app/ui/components/cookie-list.js | 28 +++++++++++++++-------- app/ui/components/modals/cookies-modal.js | 19 +++++++++++---- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/app/ui/components/cookie-list.js b/app/ui/components/cookie-list.js index fcfa14c801..9caab9c73d 100644 --- a/app/ui/components/cookie-list.js +++ b/app/ui/components/cookie-list.js @@ -7,10 +7,12 @@ import {cookieToString} from '../../common/cookies'; import PromptButton from './base/prompt-button'; import RenderedText from './rendered-text'; import type {Cookie} from '../../models/cookie-jar'; +import {Dropdown, DropdownButton, DropdownItem} from './base/dropdown/index'; type Props = { - onCookieAdd: Function, - onCookieDelete: Function, + handleCookieAdd: Function, + handleCookieDelete: Function, + handleDeleteAll: Function, cookies: Array, newCookieDomainName: string, handleShowModifyCookieModal: Function, @@ -31,16 +33,17 @@ class CookieList extends React.PureComponent { httpOnly: false }; - this.props.onCookieAdd(newCookie); + this.props.handleCookieAdd(newCookie); } _handleDeleteCookie (cookie: Cookie) { - this.props.onCookieDelete(cookie); + this.props.handleCookieDelete(cookie); } render () { const { cookies, + handleDeleteAll, handleShowModifyCookieModal, handleRender } = this.props; @@ -53,11 +56,18 @@ class CookieList extends React.PureComponent { Domain Cookie - + + + Actions + + + Add Cookie + + + Delete All + + diff --git a/app/ui/components/modals/cookies-modal.js b/app/ui/components/modals/cookies-modal.js index aa9fc36419..4cb52d4c35 100644 --- a/app/ui/components/modals/cookies-modal.js +++ b/app/ui/components/modals/cookies-modal.js @@ -61,15 +61,21 @@ class CookiesModal extends PureComponent { trackEvent('Cookie', 'Create'); } + async _handleDeleteAllCookies () { + const {cookieJar} = this.props; + cookieJar.cookies = []; + await this._saveChanges(); + trackEvent('Cookie', 'Delete All'); + } + async _handleCookieDelete (cookie: Cookie) { const {cookieJar} = this.props; const {cookies} = cookieJar; // NOTE: This is sketchy because it relies on the same reference - cookieJar.cookies = cookies.filter(c => c !== cookie); + cookieJar.cookies = cookies.filter(c => c.id !== cookie.id); await this._saveChanges(); - trackEvent('Cookie', 'Delete'); } async _handleFilterChange (e: Event) { @@ -162,6 +168,8 @@ class CookiesModal extends PureComponent { filter } = this.state; + const cookies = this._getVisibleCookies(); + return ( Manage Cookies @@ -181,11 +189,12 @@ class CookiesModal extends PureComponent {