Username Education
Co-authored-by: Jamie Kyle <jamie@signal.org>
This commit is contained in:
parent
c6a7637513
commit
7dc11c1928
100 changed files with 1443 additions and 1269 deletions
80
ts/components/UsernameOnboardingModal.tsx
Normal file
80
ts/components/UsernameOnboardingModal.tsx
Normal file
|
@ -0,0 +1,80 @@
|
|||
// Copyright 2023 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import type { LocalizerType } from '../types/Util';
|
||||
import { Button, ButtonVariant } from './Button';
|
||||
import { Modal } from './Modal';
|
||||
|
||||
export type PropsType = Readonly<{
|
||||
i18n: LocalizerType;
|
||||
onNext: () => void;
|
||||
onSkip: () => void;
|
||||
onClose: () => void;
|
||||
}>;
|
||||
|
||||
export function UsernameOnboardingModal({
|
||||
i18n,
|
||||
onNext,
|
||||
onSkip,
|
||||
onClose,
|
||||
}: PropsType): JSX.Element {
|
||||
return (
|
||||
<Modal
|
||||
modalName="UsernameOnboardingModal"
|
||||
hasXButton
|
||||
i18n={i18n}
|
||||
onClose={onClose}
|
||||
>
|
||||
<div className="UsernameOnboardingModal">
|
||||
<div className="UsernameOnboardingModal__title">
|
||||
{i18n('icu:UsernameOnboardingModalBody__title')}
|
||||
</div>
|
||||
|
||||
<div className="UsernameOnboardingModal__row">
|
||||
<div className="UsernameOnboardingModal__row__icon UsernameOnboardingModal__row__icon--number" />
|
||||
|
||||
<div className="UsernameOnboardingModal__row__body">
|
||||
<h2>
|
||||
{i18n('icu:UsernameOnboardingModalBody__row__number__title')}
|
||||
</h2>
|
||||
{i18n('icu:UsernameOnboardingModalBody__row__number__body')}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="UsernameOnboardingModal__row">
|
||||
<div className="UsernameOnboardingModal__row__icon UsernameOnboardingModal__row__icon--username" />
|
||||
|
||||
<div className="UsernameOnboardingModal__row__body">
|
||||
<h2>
|
||||
{i18n('icu:UsernameOnboardingModalBody__row__username__title')}
|
||||
</h2>
|
||||
{i18n('icu:UsernameOnboardingModalBody__row__username__body')}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="UsernameOnboardingModal__row">
|
||||
<div className="UsernameOnboardingModal__row__icon UsernameOnboardingModal__row__icon--qr" />
|
||||
|
||||
<div className="UsernameOnboardingModal__row__body">
|
||||
<h2>{i18n('icu:UsernameOnboardingModalBody__row__qr__title')}</h2>
|
||||
{i18n('icu:UsernameOnboardingModalBody__row__qr__body')}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Button className="UsernameOnboardingModal__submit" onClick={onNext}>
|
||||
{i18n('icu:UsernameOnboardingModalBody__continue')}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
className="UsernameOnboardingModal__skip"
|
||||
variant={ButtonVariant.SecondaryAffirmative}
|
||||
onClick={onSkip}
|
||||
>
|
||||
{i18n('icu:UsernameOnboardingModalBody__skip')}
|
||||
</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue