diff --git a/src/App.tsx b/src/App.tsx index a6c09da..162f05f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { SafeAreaView, StyleSheet } from "react-native"; +import { Button, SafeAreaView, StyleSheet, Text, View } from "react-native"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; import Home from "./screens/Home"; @@ -9,31 +9,63 @@ import Feedback from "./screens/Feedback"; import History from "./screens/History"; import { NavigationContainer } from "@react-navigation/native"; import { StatusBar } from "expo-status-bar"; -import styled from "styled-components/native"; +import styled, { ThemeProvider } from "styled-components/native"; +import Vote from "./screens/Vote"; +import { theme } from "./styled"; const SafeAreaViewContainer = styled(SafeAreaView)` flex: 1; `; -const Stack = createNativeStackNavigator(); +export type RootStackParamList = { + Home: undefined; + Matching: undefined; + Chat: undefined; + Vote: undefined; + Feedback: undefined; + History: undefined; +}; + +const Stack = createNativeStackNavigator(); export default function App() { return ( - - - - - - - - - - - - + + + + + + + + + + + + + + + ); } diff --git a/src/components/ProfileImage.tsx b/src/components/ProfileImage.tsx new file mode 100644 index 0000000..ced1bee --- /dev/null +++ b/src/components/ProfileImage.tsx @@ -0,0 +1,42 @@ +import React from "react"; +import { ImageSourcePropType } from "react-native"; +import styled from "styled-components/native"; + +type ProfileImageSize = "sm" | "md" | "lg"; + +const SizeMap: { [k in ProfileImageSize]: number } = { + sm: 50, + md: 100, + lg: 150, +}; + +type ContainerProps = { + size: ProfileImageSize; +}; + +const Container = styled.View` + width: ${(props) => SizeMap[props.size] + "px"}; + height: ${(props) => SizeMap[props.size] + "px"}; + border-radius: ${(props) => SizeMap[props.size] / 2 + "px"}; + overflow: hidden; +`; + +const Image = styled.Image` + width: ${(props) => SizeMap[props.size] + "px"}; + height: ${(props) => SizeMap[props.size] + "px"}; +`; + +interface Props { + size: ProfileImageSize; + image: ImageSourcePropType; +} + +const ProfileImage: React.FC = ({ size = "sm", image }) => { + return ( + + + + ); +}; + +export default ProfileImage; diff --git a/src/constants/color.ts b/src/constants/color.ts index 6792fdc..afde0ec 100644 --- a/src/constants/color.ts +++ b/src/constants/color.ts @@ -1,16 +1,16 @@ enum Color { - PVBlue = "#5988FF", - PVSkyblue = "#31BDFF", - PVRed = "#EF5D5D", - PVYellow = "#FCDE41", - PVGreen = "#00AD78", - PVBlack01 = "#303134", - PVBlack02 = "#6E7081", - PVBlack03 = "#AFB1C3", - PVBlack04 = "#CBCBD8", - PVBlack05 = "#E7E8F0", - PVBlack06 = "#F6F6F9", - White = "white" + PVBlue = "#5988FF", + PVSkyblue = "#31BDFF", + PVRed = "#EF5D5D", + PVYellow = "#FCDE41", + PVGreen = "#00AD78", + PVBlack01 = "#303134", + PVBlack02 = "#6E7081", + PVBlack03 = "#AFB1C3", + PVBlack04 = "#CBCBD8", + PVBlack05 = "#E7E8F0", + PVBlack06 = "#F6F6F9", + White = "white", } -export { Color } +export { Color }; diff --git a/src/img/mute.png b/src/img/mute.png new file mode 100644 index 0000000..615c1ce Binary files /dev/null and b/src/img/mute.png differ diff --git a/src/img/smile_1.png b/src/img/smile_1.png new file mode 100644 index 0000000..3aefeb5 Binary files /dev/null and b/src/img/smile_1.png differ diff --git a/src/img/unmute.png b/src/img/unmute.png new file mode 100644 index 0000000..593ffa2 Binary files /dev/null and b/src/img/unmute.png differ diff --git a/src/screens/Chat.tsx b/src/screens/Chat.tsx deleted file mode 100644 index 670328f..0000000 --- a/src/screens/Chat.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import { Button, View, Text } from "react-native"; - -const Chat = ({ navigation }) => { - return ( - - Chat -