diff --git a/browser/brave_profile_prefs.cc b/browser/brave_profile_prefs.cc index 94b6c4815908..da2a70db8f89 100644 --- a/browser/brave_profile_prefs.cc +++ b/browser/brave_profile_prefs.cc @@ -126,6 +126,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { // New Tab Page registry->RegisterBooleanPref(kNewTabPageShowBackgroundImage, true); + registry->RegisterBooleanPref(kNewTabPageShowClock, true); + registry->RegisterBooleanPref(kNewTabPageShowTopSites, true); + registry->RegisterBooleanPref(kNewTabPageShowStats, true); } } // namespace brave diff --git a/browser/ui/webui/brave_new_tab_message_handler.cc b/browser/ui/webui/brave_new_tab_message_handler.cc index ed78f15e8748..f0cf2c3b23ca 100644 --- a/browser/ui/webui/brave_new_tab_message_handler.cc +++ b/browser/ui/webui/brave_new_tab_message_handler.cc @@ -46,6 +46,15 @@ void BraveNewTabMessageHandler::OnJavascriptAllowed() { pref_change_registrar_.Add(kNewTabPageShowBackgroundImage, base::Bind(&BraveNewTabMessageHandler::OnPreferencesChanged, base::Unretained(this))); + pref_change_registrar_.Add(kNewTabPageShowClock, + base::Bind(&BraveNewTabMessageHandler::OnPreferencesChanged, + base::Unretained(this))); + pref_change_registrar_.Add(kNewTabPageShowStats, + base::Bind(&BraveNewTabMessageHandler::OnPreferencesChanged, + base::Unretained(this))); + pref_change_registrar_.Add(kNewTabPageShowTopSites, + base::Bind(&BraveNewTabMessageHandler::OnPreferencesChanged, + base::Unretained(this))); } void BraveNewTabMessageHandler::OnJavascriptDisallowed() { @@ -101,6 +110,12 @@ void BraveNewTabMessageHandler::HandleSaveNewTabPagePref( std::string settingsKey; if (settingsKeyInput == "showBackgroundImage") { settingsKey = kNewTabPageShowBackgroundImage; + } else if (settingsKeyInput == "showClock") { + settingsKey = kNewTabPageShowClock; + } else if (settingsKeyInput == "showTopSites") { + settingsKey = kNewTabPageShowTopSites; + } else if (settingsKeyInput == "showStats") { + settingsKey = kNewTabPageShowStats; } else { LOG(ERROR) << "Invalid setting key"; return; diff --git a/browser/ui/webui/brave_new_tab_ui.cc b/browser/ui/webui/brave_new_tab_ui.cc index e7f78323187b..718c67f350b0 100644 --- a/browser/ui/webui/brave_new_tab_ui.cc +++ b/browser/ui/webui/brave_new_tab_ui.cc @@ -99,6 +99,18 @@ void BraveNewTabUI::SetPreferencesWebUIProperties( "showBackgroundImage", prefs->GetBoolean(kNewTabPageShowBackgroundImage) ? "true" : "false"); + render_view_host->SetWebUIProperty( + "showClock", + prefs->GetBoolean(kNewTabPageShowClock) ? "true" + : "false"); + render_view_host->SetWebUIProperty( + "showTopSites", + prefs->GetBoolean(kNewTabPageShowTopSites) ? "true" + : "false"); + render_view_host->SetWebUIProperty( + "showStats", + prefs->GetBoolean(kNewTabPageShowStats) ? "true" + : "false"); } } diff --git a/browser/ui/webui/brave_webui_source.cc b/browser/ui/webui/brave_webui_source.cc index 24903bc8d8a6..27fa5942692b 100644 --- a/browser/ui/webui/brave_webui_source.cc +++ b/browser/ui/webui/brave_webui_source.cc @@ -137,6 +137,9 @@ void CustomizeWebUIHTMLSource(const std::string &name, { "dashboardSettingsTitle", IDS_BRAVE_NEW_TAB_DASHBOARD_SETTINGS_TITLE }, { "showBackgroundImage", IDS_BRAVE_NEW_TAB_SHOW_BACKGROUND_IMAGE }, + { "showBraveStats", IDS_BRAVE_NEW_TAB_SHOW_BRAVE_STATS }, + { "showClock", IDS_BRAVE_NEW_TAB_SHOW_CLOCK }, + { "showTopSites", IDS_BRAVE_NEW_TAB_SHOW_TOP_SITES }, // Private Tab - General { "learnMore", IDS_BRAVE_PRIVATE_NEW_TAB_LEARN_MORE }, diff --git a/common/pref_names.cc b/common/pref_names.cc index 3a12d7b7d011..7bcd76e3c01f 100644 --- a/common/pref_names.cc +++ b/common/pref_names.cc @@ -54,3 +54,6 @@ const char kHideBraveRewardsButton[] = "brave.hide_brave_rewards_button"; const char kIPFSCompanionEnabled[] = "brave.ipfs_companion_enabled"; const char kNewTabPageShowBackgroundImage[] = "brave.new_tab_page.show_background_image"; +const char kNewTabPageShowClock[] = "brave.new_tab_page.show_clock"; +const char kNewTabPageShowTopSites[] = "brave.new_tab_page.show_top_sites"; +const char kNewTabPageShowStats[] = "brave.new_tab_page.show_stats"; diff --git a/common/pref_names.h b/common/pref_names.h index a7513eb4abb9..94942e1fee4c 100644 --- a/common/pref_names.h +++ b/common/pref_names.h @@ -47,5 +47,8 @@ extern const char kHangoutsEnabled[]; extern const char kHideBraveRewardsButton[]; extern const char kIPFSCompanionEnabled[]; extern const char kNewTabPageShowBackgroundImage[]; +extern const char kNewTabPageShowClock[]; +extern const char kNewTabPageShowTopSites[]; +extern const char kNewTabPageShowStats[]; #endif // BRAVE_COMMON_PREF_NAMES_H_ diff --git a/components/brave_new_tab_ui/api/preferences.ts b/components/brave_new_tab_ui/api/preferences.ts index f6eab6abcf17..4ce1bb7fde84 100644 --- a/components/brave_new_tab_ui/api/preferences.ts +++ b/components/brave_new_tab_ui/api/preferences.ts @@ -12,6 +12,9 @@ export type Preferences = { showBackgroundImage: boolean + showStats: boolean + showClock: boolean + showTopSites: boolean } function getWebUIBooleanVal (key: string): boolean { @@ -24,7 +27,10 @@ export function getPreferences (): Promise { // Enforces practice of not setting directly // in a redux reducer. return Promise.resolve({ - showBackgroundImage: getWebUIBooleanVal('showBackgroundImage') + showBackgroundImage: getWebUIBooleanVal('showBackgroundImage'), + showStats: getWebUIBooleanVal('showStats'), + showClock: getWebUIBooleanVal('showClock'), + showTopSites: getWebUIBooleanVal('showTopSites') }) } @@ -36,6 +42,18 @@ export function saveShowBackgroundImage (value: boolean): void { sendSavePref('showBackgroundImage', value) } +export function saveShowClock (value: boolean): void { + sendSavePref('showClock', value) +} + +export function saveShowTopSites (value: boolean): void { + sendSavePref('showTopSites', value) +} + +export function saveShowStats (value: boolean): void { + sendSavePref('showStats', value) +} + export function addChangeListener (listener: () => void): void { window.cr.addWebUIListener('preferences-changed', listener) } diff --git a/components/brave_new_tab_ui/components/app.tsx b/components/brave_new_tab_ui/components/app.tsx index 22ad13fed00b..a9255855f2df 100644 --- a/components/brave_new_tab_ui/components/app.tsx +++ b/components/brave_new_tab_ui/components/app.tsx @@ -32,12 +32,15 @@ class DefaultPage extends React.Component { return this.props.newTabData.isIncognito ? : ( - - ) + + ) } } diff --git a/components/brave_new_tab_ui/components/newTab/index.tsx b/components/brave_new_tab_ui/components/newTab/index.tsx index a504a0444dfd..812fc62c256d 100644 --- a/components/brave_new_tab_ui/components/newTab/index.tsx +++ b/components/brave_new_tab_ui/components/newTab/index.tsx @@ -8,9 +8,9 @@ import HTML5Backend from 'react-dnd-html5-backend' import { Page, Header, - Clock, + ClockWidget as Clock, Main, - List, + ListWidget as List, Footer, DynamicBackground, Gradient @@ -27,6 +27,9 @@ interface Props { newTabData: NewTab.State actions: any saveShowBackgroundImage: (value: boolean) => void + saveShowClock: (value: boolean) => void + saveShowTopSites: (value: boolean) => void + saveShowStats: (value: boolean) => void } class NewTabPage extends React.Component { @@ -69,6 +72,24 @@ class NewTabPage extends React.Component { ) } + toggleShowClock = () => { + this.props.saveShowClock( + !this.props.newTabData.showClock + ) + } + + toggleShowStats = () => { + this.props.saveShowStats( + !this.props.newTabData.showStats + ) + } + + toggleShowTopSites = () => { + this.props.saveShowTopSites( + !this.props.newTabData.showTopSites + ) + } + showSettings = () => { this.props.actions.showSettingsMenu() } @@ -89,10 +110,10 @@ class NewTabPage extends React.Component { {newTabData.showBackgroundImage && }
- - + +
- + { this.props.newTabData.gridSites.map((site: NewTab.Site) => { }