diff --git a/app/index.jsx b/app/index.jsx index cc80476..95589ff 100755 --- a/app/index.jsx +++ b/app/index.jsx @@ -4,11 +4,32 @@ import useGoogleAuth from '@/hooks/auth/useGoogleAuth'; import useNotificationPermission from '@/hooks/auth/useNotificationPermission'; import '@/locales/index'; import { AppleButton } from '@invertase/react-native-apple-authentication'; -import { GoogleSigninButton } from '@react-native-google-signin/google-signin'; -import { Text } from '@ui-kitten/components'; import { StatusBar } from 'expo-status-bar'; -import { Image, Linking, Platform, StyleSheet, View } from 'react-native'; -import imageSource from '../assets/todo_logo.png'; +import { Linking, Platform, View } from 'react-native'; +import { moderateScale, scale, verticalScale } from 'react-native-size-matters'; +import * as Animatable from 'react-native-animatable'; +import { + useStyleSheet, + StyleService, + Layout, + Button, + Text, +} from '@ui-kitten/components'; +import GoogleImageIcon from '@/components/icons/GoogleImageIcon'; + +const PlaceholderItem = () => { + const styles = useStyleSheet(themedStyles); + return ( + + + + + ); +}; + +const AccessoryLeft = () => ( + +); const Login = () => { const { signInWithGoogle } = useGoogleAuth(); @@ -17,43 +38,66 @@ const Login = () => { isMessagingPermissionAlertModalVisible, setIsMessagingPermissionAlertModalVisible, } = useNotificationPermission(); + const styles = useStyleSheet(themedStyles); return ( - + - - - - - - OneStep - - - {Platform.OS === 'android' ? ( - { - signInWithGoogle(); - }} - /> - ) : null} - {Platform.OS === 'ios' ? ( - { - signInWithApple(); - }} - /> - ) : null} - + + {'할 일을 정리하고,\n한 걸음씩 이뤄보세요'} + + + + + + + + + + + + + + + + {Platform.OS === 'android' ? ( + + ) : null} + {Platform.OS === 'ios' ? ( + { + signInWithApple(); + }} + /> + ) : null} + { @@ -68,16 +112,49 @@ const Login = () => { confirmTextKey="common.yes" cancelTextKey="common.no" /> - + ); }; -const styles = StyleSheet.create({ +const themedStyles = StyleService.create({ container: { flex: 1, - backgroundColor: '#fff', + backgroundColor: 'background-basic-color-1', + paddingHorizontal: scale(20), + paddingTop: verticalScale(120), + paddingBottom: verticalScale(40), + }, + title: { + fontSize: moderateScale(28), + fontWeight: 'bold', + color: 'text-basic-color', + marginBottom: verticalScale(40), + lineHeight: moderateScale(34), + }, + placeholderContainer: { + flex: 1, + gap: verticalScale(16), + }, + placeholderItem: { + flexDirection: 'row', alignItems: 'center', - justifyContent: 'center', + backgroundColor: 'background-basic-color-2', + padding: moderateScale(16), + borderRadius: moderateScale(12), + gap: scale(12), + height: scale(64), + }, + placeholderCircle: { + width: scale(33), + height: scale(33), + borderRadius: moderateScale(10), + backgroundColor: 'background-basic-color-3', + }, + placeholderLine: { + height: scale(12), + backgroundColor: 'background-basic-color-3', + borderRadius: moderateScale(6), + width: scale(97), }, iconContainer: { flex: 1, @@ -86,6 +163,7 @@ const styles = StyleSheet.create({ alignContent: 'center', justifyContent: 'center', }, + buttonContainer: {}, icon: { height: '100%', width: '100%', @@ -93,15 +171,6 @@ const styles = StyleSheet.create({ alignContent: 'center', justifyContent: 'center', }, - buttonAndTextContainer: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - }, - buttonContainer: { - marginTop: 40, - justifyContent: 'center', - }, textContainer: { marginBottom: 40, }, @@ -111,9 +180,25 @@ const styles = StyleSheet.create({ justifyContent: 'center', }, button: { + flexDirection: 'row', alignItems: 'center', - justifyContent: 'center', - margin: 5, + paddingVertical: moderateScale(12), + paddingHorizontal: moderateScale(16), + borderRadius: moderateScale(8), + borderWidth: 1, + borderColor: 'background-basic-color-3', + }, + googleButton: { + backgroundColor: 'white', + borderWidth: 1, + borderColor: '#E0E0E0', + borderRadius: moderateScale(8), + height: verticalScale(52), + }, + googleButtonText: { + fontSize: moderateScale(16), + fontWeight: 700, + color: '#202020', }, }); diff --git a/assets/googleIcon.png b/assets/googleIcon.png new file mode 100644 index 0000000..304c549 Binary files /dev/null and b/assets/googleIcon.png differ diff --git a/components/GoogleIcon.jsx b/components/icons/GoogleIcon.jsx similarity index 100% rename from components/GoogleIcon.jsx rename to components/icons/GoogleIcon.jsx diff --git a/components/icons/GoogleImageIcon.tsx b/components/icons/GoogleImageIcon.tsx new file mode 100644 index 0000000..99198f0 --- /dev/null +++ b/components/icons/GoogleImageIcon.tsx @@ -0,0 +1,29 @@ +import { View } from 'react-native'; +import Svg, { Path } from 'react-native-svg'; + +const GoogleImageIcon = props => { + return ( + + + + + + + + + ); +}; + +export default GoogleImageIcon; diff --git a/theme/mapping.json b/theme/mapping.json index 2f1f04e..fca957c 100644 --- a/theme/mapping.json +++ b/theme/mapping.json @@ -246,9 +246,11 @@ }, "Button": { "appearances": { - "variantGroups": { - "size": { - "large": {} + "filled": { + "variantGroups": { + "status": { + "basic": {} + } } } }