aboutsummaryrefslogtreecommitdiffstats
path: root/packages/instant/src/components/ui/overlay.tsx
blob: 0b5eaf2993b10e5950316e951e7c912db869693a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import * as _ from 'lodash';

import { generateMediaWrapper, ScreenWidths } from '../../style/media';
import { generateOverlayBlack, styled } from '../../style/theme';
import { zIndex } from '../../style/z_index';

export interface OverlayProps {
    zIndex?: number;
    backgroundColor?: string;
    width?: string;
    height?: string;
    showMaxWidth?: ScreenWidths;
}

export const Overlay =
    styled.div <
    OverlayProps >
    `
    && {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: ${props => props.zIndex}
        background-color: ${props => props.backgroundColor};
        ${props => props.width && `width: ${props.width};`}
        ${props => props.height && `height: ${props.height};`}
        display: ${props => (props.showMaxWidth ? 'none' : 'block')};
        ${props => props.showMaxWidth && generateMediaWrapper(props.showMaxWidth)`display: block;`}
    }
`;

Overlay.defaultProps = {
    zIndex: zIndex.overlayDefault,
    backgroundColor: generateOverlayBlack(0.7),
};

Overlay.displayName = 'Overlay';