From a63cc811ee0bef5ee261917aca02ee658eeb5972 Mon Sep 17 00:00:00 2001 From: William Grant Date: Fri, 16 Sep 2022 15:53:57 +1000 Subject: [PATCH] feat: updated toasts to support theming --- stylesheets/_session.scss | 26 +++++-------------------- ts/components/SessionToastContainer.tsx | 18 ++++++++--------- ts/components/basic/SessionToast.tsx | 10 ++++++---- ts/themes/SessionTheme.tsx | 3 ++- 4 files changed, 22 insertions(+), 35 deletions(-) diff --git a/stylesheets/_session.scss b/stylesheets/_session.scss index 3a3599b3d..f57c941b6 100644 --- a/stylesheets/_session.scss +++ b/stylesheets/_session.scss @@ -224,32 +224,16 @@ label { } .Toastify__toast { - background: var(--color-cell-background); - color: var(--color-text); + background: var(--modal-background-color); + color: var(--modal-text-color); + border-left: 4px solid var(--primary-color); .Toastify__close-button { - color: subtle(var(--color-text)); - } - @mixin set-toast-theme($color) { - border-left: 4px solid $color; - } - &--success { - /* TODO is this correct? */ - @include set-toast-theme(var(--color-session-green-color)); - } - &--info { - @include set-toast-theme(var(--color-darker-gray-color)); - } - &--warning { - @include set-toast-theme(var(--color-warning)); - } - &--error { - /* TODO is this correct?*/ - @include set-toast-theme(var(--color-warning)); + color: var(--modal-text-color); } .Toastify__progress-bar { - background-color: rgba(var(--color-text-rgb), 0.1); + background-color: var(--toast-progress-color); } } diff --git a/ts/components/SessionToastContainer.tsx b/ts/components/SessionToastContainer.tsx index 8beeb647d..33205c161 100644 --- a/ts/components/SessionToastContainer.tsx +++ b/ts/components/SessionToastContainer.tsx @@ -3,6 +3,15 @@ import { Slide, ToastContainer, ToastContainerProps } from 'react-toastify'; import styled from 'styled-components'; const SessionToastContainerPrivate = () => { + const WrappedToastContainer = ({ + className, + ...rest + }: ToastContainerProps & { className?: string }) => ( +
+ +
+ ); + return ( { ); }; -const WrappedToastContainer = ({ - className, - ...rest -}: ToastContainerProps & { className?: string }) => ( -
- -
-); - // tslint:disable-next-line: no-default-export export const SessionToastContainer = styled(SessionToastContainerPrivate).attrs({ // custom props diff --git a/ts/components/basic/SessionToast.tsx b/ts/components/basic/SessionToast.tsx index 3231e3825..0179c6c65 100644 --- a/ts/components/basic/SessionToast.tsx +++ b/ts/components/basic/SessionToast.tsx @@ -5,6 +5,7 @@ import styled from 'styled-components'; import { noop } from 'lodash'; import { SessionIcon, SessionIconType } from '../icon'; +// NOTE We don't change the color strip on the left based on the type. 16/09/2022 export enum SessionToastType { Info = 'info', Success = 'success', @@ -26,22 +27,22 @@ const TitleDiv = styled.div` font-size: var(--font-size-md); line-height: var(--font-size-md); font-family: var(--font-default); - color: var(--color-text); + color: var(--text-primary-color); text-overflow: ellipsis; `; const DescriptionDiv = styled.div` font-size: var(--font-size-sm); - color: var(--color-text-subtle); + color: var(--text-secondary-color); text-overflow: ellipsis; font-family: var(--font-default); - padding-bottom: var(--font-size-xs); - padding-top: var(--font-size-xs); + padding-top: var(--margins-xs); `; const IconDiv = styled.div` flex-shrink: 0; padding-inline-end: var(--margins-xs); + margin: 0 var(--margins-xs); `; export const SessionToast = (props: Props) => { @@ -78,6 +79,7 @@ export const SessionToast = (props: Props) => { alignItems="center" onClick={props?.onToastClick || noop} data-testid="session-toast" + padding="var(--margins-sm) 0" > diff --git a/ts/themes/SessionTheme.tsx b/ts/themes/SessionTheme.tsx index 072e3cba3..d22ffca46 100644 --- a/ts/themes/SessionTheme.tsx +++ b/ts/themes/SessionTheme.tsx @@ -613,10 +613,11 @@ export const SessionGlobalStyles = createGlobalStyle` /* TODO Theming - Should Pills have their own colors? */ - /* Modals */ + /* Modals / Toasts */ --modal-background-color: ${THEMES.CLASSIC_LIGHT.COLOR6}; --modal-text-color: var(--text-primary-color); --modal-text-danger-color: var(--danger-color); + --toast-progress-color: rgba(${hexColorToRGB(THEMES.CLASSIC_LIGHT.COLOR0)}, 0.1) }; `;