/* 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 { AboutWelcomeUtils, DEFAULT_RTAMO_CONTENT, } from "../../lib/aboutwelcome-utils"; import { MultiStageProtonScreen } from "./MultiStageProtonScreen"; import { BASE_PARAMS } from "../../asrouter/templates/FirstRun/addUtmParams"; export class ReturnToAMO extends React.PureComponent { constructor(props) { super(props); this.fetchFlowParams = this.fetchFlowParams.bind(this); this.handleAction = this.handleAction.bind(this); } async fetchFlowParams() { if (this.props.metricsFlowUri) { this.setState({ flowParams: await AboutWelcomeUtils.fetchFlowParams( this.props.metricsFlowUri ), }); } } componentDidUpdate() { this.fetchFlowParams(); } handleAction(event) { const { content, message_id, url, utm_term } = this.props; let { action, source_id } = content[event.currentTarget.value]; let { type, data } = action; if (type === "INSTALL_ADDON_FROM_URL") { if (!data) { return; } // Set add-on url in action.data.url property from JSON data = { ...data, url }; } else if (type === "SHOW_FIREFOX_ACCOUNTS") { let params = { ...BASE_PARAMS, utm_term: `aboutwelcome-${utm_term}-screen`, }; if (action.addFlowParams && this.state.flowParams) { params = { ...params, ...this.state.flowParams, }; } data = { ...data, extraParams: params }; } AboutWelcomeUtils.handleUserAction({ type, data }); AboutWelcomeUtils.sendActionTelemetry(message_id, source_id); } render() { const { content, type } = this.props; if (!content) { return null; } if (content?.primary_button.label) { content.primary_button.label.string_id = type.includes("theme") ? "return-to-amo-add-theme-label" : "mr1-return-to-amo-add-extension-label"; } // For experiments, when needed below rendered UI allows settings hard coded strings // directly inside JSON except for ReturnToAMOText which picks add-on name and icon from fluent string return (
); } } ReturnToAMO.defaultProps = DEFAULT_RTAMO_CONTENT;