• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account settings Log out
  • Favorite
  • Project
  • All
Loading...
  • Log in
  • Sign up
jsbyeon / kogas-application-개발 star
  • Project homeH
  • CodeC
  • IssueI
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB
  • Files
  • Commit
  • Branches
kogas-application-개발kogas_appsrccomponentsTextInput.js
Download as .zip file
File name
Commit message
Commit date
kogas_app
[ADD] design add
2023-10-04
KOGAS_APP
FIRST COMMIT
2023-09-25
README.md
[ADD] login,main,signature page add
2023-09-25
package-lock.json
[ADD] login,main,signature page add
2023-09-25
File name
Commit message
Commit date
.bundle
[ADD] login,main,signature page add
2023-09-25
__tests__
[ADD] login,main,signature page add
2023-09-25
android
[ADD] design add
2023-10-04
ios
[ADD] login,main,signature page add
2023-09-25
src
[ADD] design add
2023-10-04
.eslintrc.js
[ADD] login,main,signature page add
2023-09-25
.gitignore
[ADD] login,main,signature page add
2023-09-25
.prettierrc.js
[ADD] login,main,signature page add
2023-09-25
.watchmanconfig
[ADD] login,main,signature page add
2023-09-25
App.tsx
[ADD] login,main,signature page add
2023-09-25
Gemfile
[ADD] login,main,signature page add
2023-09-25
README.md
[ADD] login,main,signature page add
2023-09-25
app.json
[ADD] login,main,signature page add
2023-09-25
babel.config.js
[ADD] login,main,signature page add
2023-09-25
index.js
[ADD] login,main,signature page add
2023-09-25
jest.config.js
[ADD] login,main,signature page add
2023-09-25
metro.config.js
[ADD] login,main,signature page add
2023-09-25
package-lock.json
[ADD] design add
2023-10-04
package.json
[ADD] design add
2023-10-04
tsconfig.json
[ADD] login,main,signature page add
2023-09-25
yarn.lock
[ADD] design add
2023-10-04
File name
Commit message
Commit date
components
[ADD] design add
2023-10-04
contexts
[ADD] login,main,signature page add
2023-09-25
navigations
[ADD] design add
2023-10-04
screens
[ADD] design add
2023-10-04
test
[ADD] design add
2023-10-04
App.js
[ADD] login,main,signature page add
2023-09-25
color.js
[ADD] login,main,signature page add
2023-09-25
File name
Commit message
Commit date
Button.js
[ADD] login,main,signature page add
2023-09-25
DetailListItem.js
[ADD] login,main,signature page add
2023-09-25
EmptyList.js
[ADD] login,main,signature page add
2023-09-25
ListItem.js
[ADD] design add
2023-10-04
TextInput.js
[ADD] design add
2023-10-04
moonyeju 2023-10-04 af839a7 [ADD] design add UNIX
Raw Open in browser Change history
import {StyleSheet, Text, TextInput, View} from 'react-native'; import PropTypes from 'prop-types'; import {forwardRef, useState} from 'react'; import {GRAY, BLACK, PRIMARY} from '../color'; import Icon from 'react-native-vector-icons/Ionicons'; export const ReturnKeyTypes = { DONE: 'done', NEXT: 'next', }; export const IconNames = { ID: 'lock-closed-outline', PASSWORD: 'lock-closed-outline', }; const Input = forwardRef( ({title, placeholder, value, iconName, ...props}, ref) => { const [isFocused, setIsFocused] = useState(false); return ( <View style={styles.container}> <Text style={[ styles.title, // default value && styles.hasValueTitle, // value isFocused && styles.focusedTitle, // value + focus ]}> {title} </Text> <View> <TextInput ref={ref} {...props} value={value} style={[ styles.input, iconName && {paddingLeft: 30}, value && styles.hasValueInput, isFocused && styles.focusedInput, ]} autoCapitalize={'none'} autoCorrect={false} textContentType={'none'} keyboardAppearance={'light'} onBlur={() => setIsFocused(false)} onFocus={() => setIsFocused(true)} /> <View style={styles.icon}> <Icon name={iconName} size={20} // color={(() => { // switch (true) { // case isFocused: // return PRIMARY.DEFAULT; // case !!value: // return BLACK; // default: // return GRAY; // } // })()} /> </View> </View> </View> ); }, ); Input.displayName = 'Input'; Input.defaultProps = { returnKeyType: ReturnKeyTypes.DONE, }; Input.propTypes = { title: PropTypes.string, placeholder: PropTypes.string, value: PropTypes.string, iconName: PropTypes.oneOf(Object.values(IconNames)), }; const styles = StyleSheet.create({ container: { width: '100%', paddingHorizontal: 15, marginVertical: 10, }, title: { marginBottom: 4, color: GRAY, }, focusedTitle: { fontWeight: '600', color: PRIMARY.DEFAULT, }, hasValueTitle: { color: BLACK, }, input: { borderWidth: 1, // paddingHorizontal: 20, // height: 42, // paddingLeft: 5, }, focusedInput: { borderBottomWidth: 2, borderBottomColor: PRIMARY.DEFAULT, color: PRIMARY.DEFAULT, }, hasValueInput: { borderColor: BLACK, color: BLACK, }, icon: { position: 'absolute', height: '100%', justifyContent: 'center', }, }); export default Input;

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
Sign in with github login with Google Sign in with Google
Reset password | Sign up