Commit 605278e1 authored by Nina Pypchenko's avatar Nina Pypchenko Committed by npypchenko@mozilla.com
Browse files

Bug 1916856 - Remove wallpapers v1 r=home-newtab-reviewers,frontend-codestyle-reviewers,maxx

parent a7777f31
Loading
Loading
Loading
Loading
+1 −1
Changes for browser/extensions/newtab/.eslintrc.js: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -30,10 +30,10 @@ module.exports = {
        "content-src/components/DiscoveryStreamComponents/DSEmptyState/DSEmptyState.jsx",
        "content-src/components/DiscoveryStreamComponents/DSPrivacyModal/DSPrivacyModal.jsx",
        "content-src/components/CustomizeMenu/**",
        "content-src/components/WallpapersSection/**",
        "content-src/components/DiscoveryStreamComponents/TopicSelection/TopicSelection.jsx",
        "content-src/components/DiscoveryStreamComponents/InterestPicker/InterestPicker.jsx",
        "content-src/components/DiscoveryStreamComponents/ReportContent/ReportContent.jsx",
        "content-src/components/WallpaperCategories/WallpaperCategories.jsx",
      ],
      rules: {
        "jsx-a11y/anchor-has-content": "off",
+1 −1
Changes for browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
import React from "react";
import { actionCreators as ac } from "common/Actions.mjs";
import { SectionsMgmtPanel } from "../SectionsMgmtPanel/SectionsMgmtPanel";
import { WallpaperCategories } from "../../WallpapersSection/WallpaperCategories";
import { WallpaperCategories } from "../../WallpaperCategories/WallpaperCategories";

export class ContentSection extends React.PureComponent {
  constructor(props) {
+0 −0

File moved.

+0 −0

File moved.

+0 −100
Changes for browser/extensions/newtab/content-src/components/WallpapersSection/WallpapersSection.jsx: 0 added lines, 100 removed lines.
Original line number Diff line number Diff line
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

import React from "react";
import { connect } from "react-redux";
import { actionCreators as ac, actionTypes as at } from "common/Actions.mjs";

export class _WallpapersSection extends React.PureComponent {
  constructor(props) {
    super(props);
    this.handleChange = this.handleChange.bind(this);
    this.handleReset = this.handleReset.bind(this);
    this.prefersHighContrastQuery = null;
    this.prefersDarkQuery = null;
  }

  componentDidMount() {
    this.prefersDarkQuery = globalThis.matchMedia(
      "(prefers-color-scheme: dark)"
    );
  }

  handleChange(event) {
    const { id } = event.target;

    // If we don't care about color mode, set both to the same wallpaper.
    this.props.setPref(`newtabWallpapers.wallpaper`, id);

    this.handleUserEvent({
      selected_wallpaper: id,
      hadPreviousWallpaper: !!this.props.activeWallpaper,
    });
  }

  handleReset() {
    this.props.setPref("newtabWallpapers.wallpaper", "");
    this.handleUserEvent({
      selected_wallpaper: "none",
      hadPreviousWallpaper: !!this.props.activeWallpaper,
    });
  }

  // Record user interaction when changing wallpaper and reseting wallpaper to default
  handleUserEvent(data) {
    this.props.dispatch(
      ac.OnlyToMain({
        type: at.WALLPAPER_CLICK,
        data,
      })
    );
  }

  render() {
    const { wallpaperList } = this.props.Wallpapers;
    const { activeWallpaper } = this.props;

    return (
      <div>
        <fieldset className="wallpaper-list ignore-color-mode">
          {wallpaperList.map(({ title, theme, fluent_id }) => {
            return (
              <>
                <input
                  onChange={this.handleChange}
                  type="radio"
                  name={`wallpaper-${title}`}
                  id={title}
                  value={title}
                  checked={title === activeWallpaper}
                  aria-checked={title === activeWallpaper}
                  className={`wallpaper-input theme-${theme} ${title}`}
                />
                <label
                  htmlFor={title}
                  className="sr-only"
                  data-l10n-id={fluent_id}
                >
                  {fluent_id}
                </label>
              </>
            );
          })}
        </fieldset>
        <button
          className="wallpapers-reset"
          onClick={this.handleReset}
          data-l10n-id="newtab-wallpaper-reset"
        />
      </div>
    );
  }
}

export const WallpapersSection = connect(state => {
  return {
    Wallpapers: state.Wallpapers,
    Prefs: state.Prefs,
  };
})(_WallpapersSection);
Loading