aboutsummaryrefslogtreecommitdiffstats
path: root/packages/instant/src/components/sliding_error.tsx
diff options
context:
space:
mode:
authorSteve Klebanoff <steve@0xproject.com>2018-11-09 07:37:56 +0800
committerGitHub <noreply@github.com>2018-11-09 07:37:56 +0800
commit117e2f583ff44bdb63340a2134edea0f3ecb77b3 (patch)
tree9d7552953145bb784c4f6ef32c525b11081e603c /packages/instant/src/components/sliding_error.tsx
parentc448a409c1dd7411208aeb577b64ba1246fc03d1 (diff)
downloaddexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.tar
dexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.tar.gz
dexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.tar.bz2
dexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.tar.lz
dexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.tar.xz
dexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.tar.zst
dexon-sol-tools-117e2f583ff44bdb63340a2134edea0f3ecb77b3.zip
[instant] Viewport specific errors (#1228)
feat(instant): Shows different error animation based on viewport
Diffstat (limited to 'packages/instant/src/components/sliding_error.tsx')
-rw-r--r--packages/instant/src/components/sliding_error.tsx37
1 files changed, 33 insertions, 4 deletions
diff --git a/packages/instant/src/components/sliding_error.tsx b/packages/instant/src/components/sliding_error.tsx
index a923b9932..462199d78 100644
--- a/packages/instant/src/components/sliding_error.tsx
+++ b/packages/instant/src/components/sliding_error.tsx
@@ -1,6 +1,8 @@
import * as React from 'react';
+import { ScreenSpecification } from '../style/media';
import { ColorOption } from '../style/theme';
+import { zIndex } from '../style/z_index';
import { PositionAnimationSettings } from './animations/position_animation';
import { SlideAnimation, SlideAnimationState } from './animations/slide_animation';
@@ -21,6 +23,7 @@ export const Error: React.StatelessComponent<ErrorProps> = props => (
backgroundColor={ColorOption.lightOrange}
width="100%"
borderRadius="6px"
+ marginTop="10px"
marginBottom="10px"
>
<Flex justify="flex-start">
@@ -39,25 +42,51 @@ export interface SlidingErrorProps extends ErrorProps {
}
export const SlidingError: React.StatelessComponent<SlidingErrorProps> = props => {
const slideAmount = '120px';
- const slideUpSettings: PositionAnimationSettings = {
+
+ const desktopSlideIn: PositionAnimationSettings = {
timingFunction: 'ease-in',
top: {
from: slideAmount,
to: '0px',
},
+ position: 'relative',
};
- const slideDownSettings: PositionAnimationSettings = {
+ const desktopSlideOut: PositionAnimationSettings = {
timingFunction: 'cubic-bezier(0.25, 0.1, 0.25, 1)',
top: {
from: '0px',
to: slideAmount,
},
+ position: 'relative',
+ };
+
+ const mobileSlideIn: PositionAnimationSettings = {
+ duration: '0.5s',
+ timingFunction: 'ease-in',
+ top: { from: '-120px', to: '0px' },
+ position: 'fixed',
+ };
+ const moblieSlideOut: PositionAnimationSettings = {
+ duration: '0.5s',
+ timingFunction: 'ease-in',
+ top: { from: '0px', to: '-120px' },
+ position: 'fixed',
+ };
+
+ const slideUpSettings: ScreenSpecification<PositionAnimationSettings> = {
+ default: desktopSlideIn,
+ sm: mobileSlideIn,
};
+ const slideOutSettings: ScreenSpecification<PositionAnimationSettings> = {
+ default: desktopSlideOut,
+ sm: moblieSlideOut,
+ };
+
return (
<SlideAnimation
- position="relative"
slideInSettings={slideUpSettings}
- slideOutSettings={slideDownSettings}
+ slideOutSettings={slideOutSettings}
+ zIndex={{ sm: zIndex.errorPopUp, default: zIndex.errorPopBehind }}
animationState={props.animationState}
>
<Error icon={props.icon} message={props.message} />