From bc8b76b1b86f48d0b50c1f09bb3aa48d56b7e49e Mon Sep 17 00:00:00 2001 From: Cezar Augusto Date: Wed, 3 Jul 2019 20:49:11 -0300 Subject: [PATCH] add support for shields simple view address https://github.com/brave/brave-browser/issues/1196 --- .../_locales/en_US/messages.json | 24 ++++ .../actions/shieldsPanelActions.ts | 6 + .../background/api/storageAPI.ts | 3 +- .../reducers/shieldsPanelReducer.ts | 7 + .../components/advancedView/footer.tsx | 11 +- .../components/advancedView/header.tsx | 3 +- .../components/advancedView/index.tsx | 17 ++- .../overlays/webCompatWarningOverlay.tsx | 53 ++++++++ .../components/braveShields.tsx | 14 +- .../components/simpleView/footer.tsx | 40 ++++++ .../components/simpleView/header.tsx | 122 ++++++++++++++++++ .../components/simpleView/index.tsx | 86 ++++++++++++ .../constants/shieldsPanelTypes.ts | 1 + .../state/shieldsPanelState.ts | 2 +- .../types/actions/shieldsPanelActions.ts | 11 +- .../types/constants/shieldsPanelTypes.ts | 1 + .../types/state/shieldsPannelState.ts | 3 +- .../actions/shieldsPanelActions_test.ts | 6 + .../reducers/cosmeticFilterReducer_test.ts | 3 +- .../reducers/shieldsPanelReducer_test.ts | 3 +- .../components/advancedView/footer_test.tsx | 1 + .../state/shieldsPanelState_test.ts | 68 +++++++--- components/test/testData.ts | 4 +- 23 files changed, 451 insertions(+), 38 deletions(-) create mode 100644 components/brave_extension/extension/brave_extension/components/advancedView/overlays/webCompatWarningOverlay.tsx create mode 100644 components/brave_extension/extension/brave_extension/components/simpleView/footer.tsx create mode 100644 components/brave_extension/extension/brave_extension/components/simpleView/header.tsx create mode 100644 components/brave_extension/extension/brave_extension/components/simpleView/index.tsx diff --git a/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json b/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json index 59c2b2308528..38a22318de72 100644 --- a/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json +++ b/components/brave_extension/extension/brave_extension/_locales/en_US/messages.json @@ -158,5 +158,29 @@ "resetAllFilterSettings": { "message": "Clear CSS rules for all sites", "description": "Message for context menu that resets all cosmetic filters" + }, + "advancedView": { + "message": "Advanced View", + "description": "Message for the advannced view option" + }, + "simpleView": { + "message": "Simple View", + "description": "Message for the simple view option" + }, + "shieldsExplanation": { + "message": "Sites often include cookies and scripts which try to identify you and your deviec (often embedded into ads). They want to work out who you are and follow you accross the web — tracking what you do on every site. Brave blocks these things so that you can browse without being followed around.", + "description": "Message in read-only view explaining what Brave Shields do" + }, + "blockedResoucesExplanation": { + "message": "Cross-site trackers and other creepy things blocked", + "description": "Message for the main trackers count in Shields simple view" + }, + "webCompatWarning": { + "message": "Changing Shield settings in this view may affect web compatibility on this site.", + "description": "Message for web compat warning when switching from simple to advanced view" + }, + "gotIt": { + "message": "Got it", + "description": "Message for the button that confirms the advanced view" } } diff --git a/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts b/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts index 13c458df61f9..97d59933997a 100644 --- a/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts +++ b/components/brave_extension/extension/brave_extension/actions/shieldsPanelActions.ts @@ -125,3 +125,9 @@ export const setAdvancedViewFirstAccess: actions.SetAdvancedViewFirstAccess = () type: types.SET_ADVANCED_VIEW_FIRST_ACCESS } } + +export const toggleAdvancedView: actions.ToggleAdvancedView = () => { + return { + type: types.TOGGLE_ADVANCED_VIEW + } +} diff --git a/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts b/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts index 5821814ba8b7..19d84a1c0bfa 100644 --- a/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts +++ b/components/brave_extension/extension/brave_extension/background/api/storageAPI.ts @@ -8,7 +8,8 @@ import * as Shields from '../../types/state/shieldsPannelState' const keyName = 'shields-persistent-data' export const defaultPersistentData: Shields.PersistentData = { - isFirstAccess: true + isFirstAccess: true, + advancedView: false } export const loadPersistentData = (): Shields.PersistentData => { diff --git a/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts b/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts index a91e907df1b8..e05137568ddc 100644 --- a/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts +++ b/components/brave_extension/extension/brave_extension/background/reducers/shieldsPanelReducer.ts @@ -316,10 +316,17 @@ export default function shieldsPanelReducer ( state = noScriptState.setFinalScriptsBlockedState(state) break } + // Advanced/simple view functionality case shieldsPanelTypes.SET_ADVANCED_VIEW_FIRST_ACCESS: { state = shieldsPanelState.updatePersistentData(state, { isFirstAccess: false }) break } + case shieldsPanelTypes.TOGGLE_ADVANCED_VIEW: { + state = shieldsPanelState.updatePersistentData(state, { + advancedView: !state.persistentData.advancedView + }) + break + } } if (!areObjectsEqual(state.persistentData, initialPersistentData)) { diff --git a/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx b/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx index e88f57e5b2a9..d9b6620039c7 100644 --- a/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx +++ b/components/brave_extension/extension/brave_extension/components/advancedView/footer.tsx @@ -4,6 +4,10 @@ import * as React from 'react' +// Types + +import { ToggleAdvancedView } from '../../types/actions/shieldsPanelActions' + // Feature-specific components import { MainFooter, Link } from 'brave-ui/features/shields' @@ -15,6 +19,7 @@ import { getLocale } from '../../background/api/localeAPI' export interface Props { isBlockedListOpen: boolean + toggleAdvancedView: ToggleAdvancedView } export default class Footer extends React.PureComponent { @@ -22,10 +27,14 @@ export default class Footer extends React.PureComponent { tabsAPI.createTab({ url: 'chrome://settings/shields' }) .catch((err) => console.log('[Unable to open a new tab from Shields]', err)) } + render () { - const { isBlockedListOpen } = this.props + const { isBlockedListOpen, toggleAdvancedView } = this.props return ( + + {getLocale('simpleView')} + { } render () { - const { shieldsPanelTabData, actions } = this.props + const { shieldsPanelTabData, persistentData, actions } = this.props const { isBlockedListOpen } = this.state if (!shieldsPanelTabData) { @@ -87,10 +90,13 @@ export default class Shields extends React.PureComponent { return ( + { + persistentData.isFirstAccess + && + }
{ ) } -