UNPKG

@lad-tech/mobydick-core

Version:

React Native components library focused on usability, accessibility and developer experience

65 lines (60 loc) 1.89 kB
import {IInputsTypes} from '../types'; import {disabledStyle, validStyle, wrongStyle} from '../../style'; import {createStyles, IThemeContext} from '../../../styles'; import px from '../../../styles/utils/px'; const defaultStyle = createStyles( ({spaces, colors}, focused: boolean, multiline: boolean) => ({ container: { minWidth: px(130), }, inputContainer: { backgroundColor: colors.BgSecondary, borderRadius: spaces.Space8, borderWidth: spaces.Space1, borderColor: focused ? colors.BorderHard : 'transparent', marginVertical: spaces.Space8, flexDirection: 'row', justifyContent: 'space-between', alignItems: multiline ? undefined : 'center', }, textInput: { flex: 1, paddingRight: spaces.Space16, paddingLeft: px(18), textAlignVertical: multiline ? 'top' : undefined, padding: 0, // Android по дефолту ставит padding на input's paddingVertical: spaces.Space12, borderRadius: spaces.Space8, // for web outlineWidth: 0, }, androidTextInput: { fontSize: spaces.Space16, color: colors.TextPrimary, padding: 0, // Android по дефолту ставит padding на input's }, }), ); const stylesCreate = ( theme: IThemeContext, type: IInputsTypes, focused: boolean, multiline: boolean, ) => { switch (type) { case IInputsTypes.valid: return validStyle( theme, defaultStyle(theme, focused, multiline), focused, ); case IInputsTypes.wrong: return wrongStyle(theme, defaultStyle(theme, focused, multiline)); case IInputsTypes.disabled: return disabledStyle(theme, defaultStyle(theme, focused, multiline)); case IInputsTypes.default: default: return defaultStyle(theme, focused, multiline); } }; export default stylesCreate;