import React, { FC } from "react"; import styled, { css } from "styled-components"; import CSS from "csstype"; import { rgba } from "polished"; import { color, opacity, typography, borderRadius, padding, outline, } from "../shared/styles"; export interface InputProps { style?: CSS.Properties; variant?: "primary" | "disabled-light" | "disabled-medium"; id: string; value: string; onChange?: (e: React.ChangeEvent) => void; placeholder?: string; } const Input: FC = ({ style, variant = "primary", id, value, onChange, placeholder = "", }) => { const disabled = variant === "disabled-light" || variant === "disabled-medium" ? true : false; return ( ); }; export { Input }; const StyledInput = styled.input` border-radius: ${borderRadius.medium}; border: none; padding: ${padding.medium}; width: 100%; height: 6rem; color: ${color.darkblue}; font-size: ${typography.size.medium}; font-family: ${typography.family.primary}; font-weight: ${typography.weight.regular}; &::placeholder { color: ${color.darkblue}; } appearance: none; &:focus, &:focus-visible { outline: ${outline.regular}; } ${(props) => (props.variant === "disabled-light" || props.variant === "disabled-medium") && css` cursor: not-allowed; color: ${color.white}; &::placeholder { color: ${color.white}; } `} ${(props) => props.variant === "disabled-light" && css` background-color: ${rgba(color.white, opacity.light)}; `} ${(props) => props.variant === "disabled-medium" && css` background-color: ${rgba(color.white, opacity.medium)}; `} `;