/* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ import classNames from "classnames"; import React, { useEffect, useState } from "react"; import { _t } from "../../../languageHandler"; import { UseCase } from "../../../settings/enums/UseCase"; import SplashPage from "../../structures/SplashPage"; import AccessibleButton from "../elements/AccessibleButton"; import { UseCaseSelectionButton } from "./UseCaseSelectionButton"; interface Props { onFinished: (useCase: UseCase) => void; } const TIMEOUT = 1500; export function UseCaseSelection({ onFinished }: Props): JSX.Element { const [selection, setSelected] = useState(null); // Call onFinished 1.5s after `selection` becomes truthy, to give time for the animation to run useEffect(() => { if (selection) { let handler: number | null = window.setTimeout(() => { handler = null; onFinished(selection); }, TIMEOUT); return () => { if (handler !== null) clearTimeout(handler); handler = null; }; } }, [selection, onFinished]); return (

{_t("onboarding|use_case_heading1")}

{_t("onboarding|use_case_heading2")}

{_t("onboarding|use_case_heading3")}

setSelected(UseCase.Skip)}> {_t("action|skip")}
); }