import React, { FC } from 'react' import styled, { css, SimpleInterpolation } from 'styled-components' import { baseErrorBorderStyles, flexFlow } from '@monorail/helpers/exports' import { CommonComponentType } from '@monorail/types' import { DisplayType } from '@monorail/visualComponents/inputs/inputTypes' import { Label } from '@monorail/visualComponents/inputs/Label' const SelectGroupWrapper = styled.div( ({ cssOverrides }) => css` ${flexFlow('column')}; border: 0; margin: 0; padding: 0; width: 256px; ${cssOverrides}; `, ) const SelectElementWrapper = styled.div<{ err?: boolean }>( ({ err }) => css` background-color: white; width: 100%; height: 24px; border: 1px solid #e5e5e5; padding: 0 0 0 0; border-radius: 3px; &:hover { cursor: pointer; } ${err && baseErrorBorderStyles}; `, ) const SelectElement = styled.select` width: calc(100% - 8px); height: 22px; background: transparent; border: none; outline: none; cursor: pointer; &:disabled { opacity: 0.6; } ` export type SelectOption = { label: string value: string } export type SelectProps = { cssOverrides?: SimpleInterpolation disabled?: boolean display?: DisplayType err?: boolean label?: string name?: string onBlur?: (e: React.SyntheticEvent) => void onChange?: (event: React.ChangeEvent) => void onSelect?: (e: string | Array | number | undefined) => void options: Array placeholder?: string required?: boolean value?: string | Array | number } export const Select: FC = props => { const { cssOverrides, disabled, display = DisplayType.View, err, label, name, onBlur, onChange, onSelect, options, placeholder, required, value, ...domProps } = props return (