You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spa_instat_tv/src/features/AddCardForm/components/ElementContainer/index.tsx

93 lines
1.7 KiB

import { ReactNode } from 'react'
import styled, { css } from 'styled-components/macro'
import { isMobileDevice } from 'config/userAgent'
import { T9n } from 'features/T9n'
type LabelProps = {
backgroundColor?: string,
width?: string,
}
const Label = styled.label<LabelProps>`
display: flex;
height: 50px;
width: ${({ width }) => width || '100%'};
padding: 0 25px;
background-color: ${({ backgroundColor = '#3F3F3F' }) => backgroundColor};
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3);
border-radius: 2px;
border: 1px solid transparent;
/* stylelint-disable-next-line */
font-family: Montserrat;
font-style: normal;
font-weight: normal;
font-size: 16px;
line-height: 48px;
letter-spacing: -0.01em;
color: rgba(255, 255, 255, 0.5);
margin-bottom: 10px;
${isMobileDevice
? css`
height: 36px;
font-size: 12px;
padding: 0 13px;
align-items: center;
:nth-child(3){
width: 48%;
}
:nth-child(4){
width: 48%;
}
`
: ''};
.StripeElement--webkit-autofill {
background-color: transparent !important;
}
`
const Text = styled(T9n)`
margin-right: 5px;
white-space: nowrap;
${isMobileDevice
? css`
line-height: 12px;
`
: ''};
`
const ElementWrapper = styled.div`
height: 100%;
flex-grow: 1;
${isMobileDevice
? css`
height: auto;
line-height: 12px;
`
: ''};
`
type Props = {
backgroundColor?: string,
children: ReactNode,
label?: string,
width?: string,
}
export const ElementContainer = ({
backgroundColor,
children,
label,
width,
}: Props) => (
<Label width={width} backgroundColor={backgroundColor}>
{label && <Text t={label} />}
<ElementWrapper>
{children}
</ElementWrapper>
</Label>
)