diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 623484c05..d8c8cd9fb 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -586,7 +586,9 @@
"privacyPolicy": "Privacy Policy",
"displayNamePick": "Pick your display name",
"displayNameDescription": "It can be your real name, an alias, or anything else you like — and you can change it any time.",
- "invalidDisplayNameTooLong": "Please enter a shorter display name.",
+ "displayNameErrorDescriptionShorter": "Please pick a shorter display name",
"onboardingAccountCreated": "Account Created",
- "onboardingBubbleWelcomeToSession": "Welcome to Session"
+ "onboardingBubbleWelcomeToSession": "Welcome to Session",
+ "conversationsNone": "You don't have any conversations yet",
+ "onboardingHitThePlusButton": "Hit the plus button to start a chat, create a group, or join an official community!"
}
diff --git a/ts/components/EmptyMessageView.tsx b/ts/components/EmptyMessageView.tsx
index fc4fa0a2b..d2a6064b9 100644
--- a/ts/components/EmptyMessageView.tsx
+++ b/ts/components/EmptyMessageView.tsx
@@ -2,6 +2,7 @@ import { useState } from 'react';
import { useMount } from 'react-use';
import styled from 'styled-components';
import { Flex } from './basic/Flex';
+import { Spacer2XL, SpacerXS } from './basic/Text';
const StyledPlaceholder = styled(Flex)`
margin: auto;
@@ -31,22 +32,40 @@ const StyledPartyPopper = styled.img`
-webkit-user-drag: none;
`;
-const StyledHeading = styled.p`
- padding: 0;
+const StyledP = styled.p`
margin: 0;
- font-size: var(--font-size-h1);
+ padding: 0;
+ text-align: center;
+`;
+
+const StyledHeading = styled(StyledP)`
+ margin: 0 0 var(--margins-md);
+ line-height: 1;
+ font-size: 48px;
font-weight: 700;
`;
-const StyledSessionWelcome = styled.p`
- padding: 0;
- margin: 0;
+const StyledSessionWelcome = styled(StyledP)`
+ line-height: 1;
color: var(--primary-color);
- font-size: var(--font-size-h2);
+ font-size: 32px;
+`;
+
+const StyledHR = styled.hr`
+ color: var(--text-secondary-color);
+ opacity: 0.5;
+ width: 300px;
+ border-width: 0.5px;
+ margin: 40px 0 var(--margins-lg);
+`;
+
+const StyledNoConversations = styled(StyledP)`
+ font-size: 24px;
+ font-weight: 700;
`;
export const EmptyMessageView = () => {
- const [newAccountCreated, setNewAccountCreated] = useState(false);
+ const [newAccountCreated, setNewAccountCreated] = useState(true);
useMount(() => {
const launchCount = window.getSettingValue('launch-count');
@@ -57,25 +76,6 @@ export const EmptyMessageView = () => {
}
});
- if (newAccountCreated) {
- return (
-
-
- {window.i18n('onboardingAccountCreated')}
-
- {window.i18n('onboardingBubbleWelcomeToSession')}
-
-
- );
- }
-
return (
{
alignItems="center"
margin="auto"
>
-
-
-
-
+ {newAccountCreated ? (
+ <>
+
+
+ {window.i18n('onboardingAccountCreated')}
+
+ {window.i18n('onboardingBubbleWelcomeToSession')}
+
+ >
+ ) : (
+
+
+
+
+ )}
+
+ {window.i18n('conversationsNone')}
+
+ {window.i18n('onboardingHitThePlusButton')}
);
};
diff --git a/ts/components/basic/Text.tsx b/ts/components/basic/Text.tsx
index f53d54195..db7556021 100644
--- a/ts/components/basic/Text.tsx
+++ b/ts/components/basic/Text.tsx
@@ -31,13 +31,17 @@ export const TextWithChildren = (props: Omit & { children: Re
};
type SpacerProps = {
- size: 'xl' | 'lg' | 'md' | 'sm' | 'xs';
+ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
style?: CSSProperties;
};
const SpacerStyled = styled.div`
height: ${props =>
- props.size === 'xl'
+ props.size === '3xl'
+ ? 'var(--margins-3xl)'
+ : props.size === '2xl'
+ ? 'var(--margins-2xl)'
+ : props.size === 'xl'
? 'var(--margins-xl)'
: props.size === 'lg'
? 'var(--margins-lg)'
@@ -48,7 +52,11 @@ const SpacerStyled = styled.div`
: 'var(--margins-xs)'};
width: ${props =>
- props.size === 'xl'
+ props.size === '3xl'
+ ? 'var(--margins-3xl)'
+ : props.size === '2xl'
+ ? 'var(--margins-2xl)'
+ : props.size === 'xl'
? 'var(--margins-xl)'
: props.size === 'lg'
? 'var(--margins-lg)'
@@ -63,23 +71,39 @@ const Spacer = (props: SpacerProps) => {
return ;
};
-export const SpacerXL = (props: { style?: CSSProperties }) => {
- return ;
+/** 5px */
+export const SpacerXS = (props: { style?: CSSProperties }) => {
+ return ;
};
-export const SpacerLG = (props: { style?: CSSProperties }) => {
- return ;
+/** 10px */
+export const SpacerSM = (props: { style?: CSSProperties }) => {
+ return ;
};
+/** 15px */
export const SpacerMD = (props: { style?: CSSProperties }) => {
return ;
};
-export const SpacerSM = (props: { style?: CSSProperties }) => {
- return ;
+
+/** 20px */
+export const SpacerLG = (props: { style?: CSSProperties }) => {
+ return ;
};
-export const SpacerXS = (props: { style?: CSSProperties }) => {
- return ;
+/** 25px */
+export const SpacerXL = (props: { style?: CSSProperties }) => {
+ return ;
+};
+
+/** 30px */
+export const Spacer2XL = (props: { style?: CSSProperties }) => {
+ return ;
+};
+
+/** 35px */
+export const Spacer3XL = (props: { style?: CSSProperties }) => {
+ return ;
};
type H3Props = {
diff --git a/ts/components/registration/stages/CreateAccount.tsx b/ts/components/registration/stages/CreateAccount.tsx
index 479b0dda1..9ce925669 100644
--- a/ts/components/registration/stages/CreateAccount.tsx
+++ b/ts/components/registration/stages/CreateAccount.tsx
@@ -50,7 +50,7 @@ function sanitizeDisplayNameOrToast(
setDisplayNameError(!trimName ? window.i18n('displayNameEmpty') : undefined);
} catch (e) {
setDisplayName(displayName);
- setDisplayNameError(window.i18n('invalidDisplayNameTooLong'));
+ setDisplayNameError(window.i18n('displayNameErrorDescriptionShorter'));
}
}
diff --git a/ts/themes/globals.tsx b/ts/themes/globals.tsx
index 20085dd91..7afad7b75 100644
--- a/ts/themes/globals.tsx
+++ b/ts/themes/globals.tsx
@@ -24,6 +24,7 @@ export type ThemeGlobals = {
'--margins-lg': string;
'--margins-xl': string;
'--margins-2xl': string;
+ '--margins-3xl': string;
/* Padding */
'--padding-message-content': string;
@@ -115,6 +116,7 @@ export const THEME_GLOBALS: ThemeGlobals = {
'--margins-lg': '20px',
'--margins-xl': '25px',
'--margins-2xl': '30px',
+ '--margins-3xl': '35px',
'--padding-message-content': '7px 13px',
'--padding-link-preview': '-7px -13px 7px -13px', // bottom has positive value because a link preview has always a body below
diff --git a/ts/types/LocalizerKeys.ts b/ts/types/LocalizerKeys.ts
index 5715c45c1..82068ac43 100644
--- a/ts/types/LocalizerKeys.ts
+++ b/ts/types/LocalizerKeys.ts
@@ -101,6 +101,7 @@ export type LocalizerKeys =
| 'continue'
| 'continueYourSession'
| 'conversationsHeader'
+ | 'conversationsNone'
| 'conversationsSettingsTitle'
| 'copiedToClipboard'
| 'copyErrorAndQuit'
@@ -161,6 +162,7 @@ export type LocalizerKeys =
| 'displayName'
| 'displayNameDescription'
| 'displayNameEmpty'
+ | 'displayNameErrorDescriptionShorter'
| 'displayNamePick'
| 'displayNameTooLong'
| 'document'
@@ -236,7 +238,6 @@ export type LocalizerKeys =
| 'imageCaptionIconAlt'
| 'incomingCallFrom'
| 'incomingError'
- | 'invalidDisplayNameTooLong'
| 'invalidGroupNameTooLong'
| 'invalidGroupNameTooShort'
| 'invalidNumberError'
@@ -358,6 +359,7 @@ export type LocalizerKeys =
| 'ok'
| 'onboardingAccountCreated'
| 'onboardingBubbleWelcomeToSession'
+ | 'onboardingHitThePlusButton'
| 'onboardingTosPrivacy'
| 'oneNonImageAtATimeToast'
| 'onionPathIndicatorDescription'