Merge branch 'design3' into 'master'
Design3 rate 디자인 거의 완성!! See merge request !12
Showing
5 changed files
with
85 additions
and
51 deletions
... | @@ -3,7 +3,7 @@ import { Text } from 'react-native-paper'; | ... | @@ -3,7 +3,7 @@ import { Text } from 'react-native-paper'; |
3 | import { StyleSheet,View } from 'react-native'; | 3 | import { StyleSheet,View } from 'react-native'; |
4 | 4 | ||
5 | export default PromptSearchRate = () => ( | 5 | export default PromptSearchRate = () => ( |
6 | - <View style={{alignItems:'center'}}> | 6 | + <View style={{alignItems: 'center',justifyContent: 'center'}}> |
7 | <Text style={styles.Text}>아직까지 검색</Text> | 7 | <Text style={styles.Text}>아직까지 검색</Text> |
8 | <Text style={styles.Text}>결과가 없습니다!</Text> | 8 | <Text style={styles.Text}>결과가 없습니다!</Text> |
9 | </View> | 9 | </View> | ... | ... |
1 | import React,{ useState } from 'react'; | 1 | import React,{ useState } from 'react'; |
2 | import { Surface, Text ,HelperText} from 'react-native-paper'; | 2 | import { Surface, Text ,HelperText} from 'react-native-paper'; |
3 | import { StyleSheet,View } from 'react-native'; | 3 | import { StyleSheet,View } from 'react-native'; |
4 | -import { StackedBarChart } from 'react-native-svg-charts'; | 4 | +import { PieChart } from 'react-native-svg-charts'; |
5 | import PromptSearchRate from '../PromptSearch/PromptSearchRate'; | 5 | import PromptSearchRate from '../PromptSearch/PromptSearchRate'; |
6 | 6 | ||
7 | export default RateBar = (props) => { | 7 | export default RateBar = (props) => { |
... | @@ -14,48 +14,54 @@ export default RateBar = (props) => { | ... | @@ -14,48 +14,54 @@ export default RateBar = (props) => { |
14 | <> | 14 | <> |
15 | <View style={styles.container}> | 15 | <View style={styles.container}> |
16 | <Text style={styles.Text}>총 점수 : {props.score.full}점</Text> | 16 | <Text style={styles.Text}>총 점수 : {props.score.full}점</Text> |
17 | - <View style={styles.colorContainer}> | ||
18 | - <View style={styles.textContainer}> | ||
19 | - <View style={styles.colorA}></View><Text>키워드 점수</Text> | ||
20 | - </View> | ||
21 | - <View style={styles.textContainer}> | ||
22 | - <View style={styles.colorB}></View><Text>맞춤법 점수</Text> | ||
23 | </View> | 17 | </View> |
18 | + | ||
19 | + <View style={styles.container}> | ||
20 | + <Text style={styles.message}>눌러서 각각의 점수를 알아보세요!</Text> | ||
24 | </View> | 21 | </View> |
22 | + <View style={styles.infoContainer}> | ||
23 | + <HelperText type={'info'} visible={click==2} style={styles.helper}>맞춤법 : {props.score.fix}</HelperText> | ||
24 | + <HelperText type={'info'} visible={click==1} style={styles.helper}>키워드 : {props.score.key}</HelperText> | ||
25 | </View> | 25 | </View> |
26 | - <StackedBarChart | 26 | + <View style={styles.chartContatiner}> |
27 | - data={ [{ | 27 | + <View> |
28 | - keyword: { | 28 | + <PieChart |
29 | + style={ styles.chart } | ||
30 | + data={[{ | ||
29 | value: props.score.key, | 31 | value: props.score.key, |
30 | - svg: { | 32 | + svg:{ |
33 | + fill : '#e85a71', | ||
31 | onPressIn: () => {setClick(1)}, | 34 | onPressIn: () => {setClick(1)}, |
32 | onPressOut: ()=>{setClick(0)} | 35 | onPressOut: ()=>{setClick(0)} |
33 | }, | 36 | }, |
37 | + key: "키워드" | ||
34 | }, | 38 | }, |
35 | - korean: { | 39 | + { |
36 | value: props.score.fix, | 40 | value: props.score.fix, |
37 | svg: { | 41 | svg: { |
42 | + fill : '#d8e9ef', | ||
38 | onPressIn: () => {setClick(2)}, | 43 | onPressIn: () => {setClick(2)}, |
39 | onPressOut: ()=>{setClick(0)} | 44 | onPressOut: ()=>{setClick(0)} |
40 | }, | 45 | }, |
46 | + key: "맞춤법" | ||
41 | }, | 47 | }, |
42 | - rest: { | 48 | + { |
43 | value: (100-(props.score.key+props.score.fix)), | 49 | value: (100-(props.score.key+props.score.fix)), |
50 | + key : "" | ||
44 | } | 51 | } |
45 | - }]} | 52 | + ]} |
46 | - style={{height:50, width:'90%'}} | 53 | + innerRadius={"50%"} |
47 | - keys={['keyword','korean','rest']} | ||
48 | - colors={['#f98a1a','#14a986','#ffffff']} | ||
49 | - showGrid={ false } | ||
50 | - horizontal={ true } | ||
51 | - contentInset={ { top: 10 } } | ||
52 | - valueAccessor={({ item, key }) => item[key].value} | ||
53 | /> | 54 | /> |
54 | - <View style={styles.infoContainer}> | ||
55 | - <HelperText type={'info'} visible={click==1} style={styles.helper}>키워드 : {props.score.key}</HelperText> | ||
56 | - <HelperText type={'info'} visible={click==2} style={styles.helper}>맞춤법 : {props.score.fix}</HelperText> | ||
57 | </View> | 55 | </View> |
58 | - <Text style={styles.message}>눌러서 각각의 점수를 알아보세요!</Text> | 56 | + <View style={styles.colorContainer}> |
57 | + <View style={styles.textContainer}> | ||
58 | + <View style={styles.colorA}></View><Text>키워드 점수</Text> | ||
59 | + </View> | ||
60 | + <View style={styles.textContainer}> | ||
61 | + <View style={styles.colorB}></View><Text>맞춤법 점수</Text> | ||
62 | + </View> | ||
63 | + </View> | ||
64 | + </View> | ||
59 | </> | 65 | </> |
60 | : <PromptSearchRate />} | 66 | : <PromptSearchRate />} |
61 | </Surface> | 67 | </Surface> |
... | @@ -70,13 +76,14 @@ const styles = StyleSheet.create({ | ... | @@ -70,13 +76,14 @@ const styles = StyleSheet.create({ |
70 | width: '100%', | 76 | width: '100%', |
71 | flexDirection:'row', | 77 | flexDirection:'row', |
72 | justifyContent:'center', | 78 | justifyContent:'center', |
79 | + marginTop : 8, | ||
73 | }, | 80 | }, |
74 | colorContainer:{ | 81 | colorContainer:{ |
75 | position:"absolute", | 82 | position:"absolute", |
76 | - right:0, | 83 | + right:20, |
77 | }, | 84 | }, |
78 | colorA:{ | 85 | colorA:{ |
79 | - backgroundColor:'#f98a1a', | 86 | + backgroundColor:'#e85a71', |
80 | height: 7, | 87 | height: 7, |
81 | width: 7, | 88 | width: 7, |
82 | marginRight: 5, | 89 | marginRight: 5, |
... | @@ -84,13 +91,23 @@ const styles = StyleSheet.create({ | ... | @@ -84,13 +91,23 @@ const styles = StyleSheet.create({ |
84 | fontSize: 13, | 91 | fontSize: 13, |
85 | }, | 92 | }, |
86 | colorB:{ | 93 | colorB:{ |
87 | - backgroundColor:'#2cc3c2', | 94 | + backgroundColor:'#d8e9ef', |
88 | height: 7, | 95 | height: 7, |
89 | width: 7, | 96 | width: 7, |
90 | marginRight: 5, | 97 | marginRight: 5, |
91 | fontFamily:"Regular", | 98 | fontFamily:"Regular", |
92 | fontSize: 13, | 99 | fontSize: 13, |
93 | }, | 100 | }, |
101 | + chartContatiner:{ | ||
102 | + flexDirection:'row', | ||
103 | + justifyContent:"flex-start", | ||
104 | + alignItems:'flex-start', | ||
105 | + }, | ||
106 | + chart:{ | ||
107 | + height: 125, | ||
108 | + width:"100%", | ||
109 | + position:"absolute", | ||
110 | + }, | ||
94 | textContainer:{ | 111 | textContainer:{ |
95 | flexDirection:'row', | 112 | flexDirection:'row', |
96 | justifyContent:'center', | 113 | justifyContent:'center', |
... | @@ -104,11 +121,13 @@ const styles = StyleSheet.create({ | ... | @@ -104,11 +121,13 @@ const styles = StyleSheet.create({ |
104 | width: '100%' | 121 | width: '100%' |
105 | }, | 122 | }, |
106 | surface: { | 123 | surface: { |
107 | - padding: 8, | 124 | + paddingTop: 10, |
108 | - flex: 0.3, | 125 | + paddingBottom:0, |
126 | + flex: 0.55, | ||
109 | width: '95%', | 127 | width: '95%', |
110 | - alignItems: 'center', | 128 | + flexDirection:'column', |
111 | - justifyContent: 'center', | 129 | + alignItems: "center", |
130 | + justifyContent: 'flex-start', | ||
112 | elevation: 2, | 131 | elevation: 2, |
113 | marginTop: 10, | 132 | marginTop: 10, |
114 | borderRadius: 5 | 133 | borderRadius: 5 |
... | @@ -121,9 +140,10 @@ const styles = StyleSheet.create({ | ... | @@ -121,9 +140,10 @@ const styles = StyleSheet.create({ |
121 | message:{ | 140 | message:{ |
122 | fontFamily:"Son", | 141 | fontFamily:"Son", |
123 | fontSize: 20, | 142 | fontSize: 20, |
143 | + marginBottom: 10, | ||
124 | }, | 144 | }, |
125 | helper:{ | 145 | helper:{ |
126 | - fontFamily:"Regular", | 146 | + fontFamily:"Bold", |
127 | fontSize:15 | 147 | fontSize:15 |
128 | } | 148 | } |
129 | }); | 149 | }); | ... | ... |
... | @@ -15,16 +15,22 @@ const RateLine = ({load,pastRecords }) => { | ... | @@ -15,16 +15,22 @@ const RateLine = ({load,pastRecords }) => { |
15 | <Surface style={styles.surface}> | 15 | <Surface style={styles.surface}> |
16 | {pastRecords.length ? | 16 | {pastRecords.length ? |
17 | <> | 17 | <> |
18 | - <Text style={styles.info}>점수 변화</Text> | 18 | + <Text style={styles.message}>당신의 점수 변화를 확인하세요!</Text> |
19 | <View style={styles.scoreContainer}> | 19 | <View style={styles.scoreContainer}> |
20 | {pastRecords.map((past,index)=> ( | 20 | {pastRecords.map((past,index)=> ( |
21 | + pastRecords.length - 1 > index ? | ||
21 | <View key={index} style={styles.past}> | 22 | <View key={index} style={styles.past}> |
23 | + <Text style={styles.date, {fontSize:11}}>{past.date.substring(5,7)+'/'+past.date.substring(8,10)}</Text> | ||
22 | <Text style={styles.score}>{past.score}</Text> | 24 | <Text style={styles.score}>{past.score}</Text> |
23 | - <Text style={styles.date}>{past.date.substring(5,7)+'/'+past.date.substring(8,10)}</Text> | 25 | + </View> |
26 | + : | ||
27 | + <View key={index} style={styles.past}> | ||
28 | + <Text style={styles.date, {fontSize:15}}>{past.date.substring(5,7)+'/'+past.date.substring(8,10)}</Text> | ||
29 | + <Text style={styles.score, {fontFamily:"ExtraBold", fontSize:25, color: "#4ea1d3"}}>{past.score}</Text> | ||
24 | </View> | 30 | </View> |
25 | ))} | 31 | ))} |
32 | + | ||
26 | </View> | 33 | </View> |
27 | - <Text style={styles.message}>당신의 점수 변화를 확인하세요!</Text> | ||
28 | </> | 34 | </> |
29 | : <PromptSearchRate /> | 35 | : <PromptSearchRate /> |
30 | } | 36 | } |
... | @@ -33,9 +39,10 @@ const RateLine = ({load,pastRecords }) => { | ... | @@ -33,9 +39,10 @@ const RateLine = ({load,pastRecords }) => { |
33 | } | 39 | } |
34 | const styles = StyleSheet.create({ | 40 | const styles = StyleSheet.create({ |
35 | surface: { | 41 | surface: { |
36 | - padding: 8, | 42 | + padding :5, |
37 | flex: 0.3, | 43 | flex: 0.3, |
38 | width: '95%', | 44 | width: '95%', |
45 | + flexDirection:'column', | ||
39 | alignItems: 'center', | 46 | alignItems: 'center', |
40 | justifyContent: 'center', | 47 | justifyContent: 'center', |
41 | elevation: 2, | 48 | elevation: 2, |
... | @@ -44,23 +51,29 @@ const styles = StyleSheet.create({ | ... | @@ -44,23 +51,29 @@ const styles = StyleSheet.create({ |
44 | borderRadius: 5, | 51 | borderRadius: 5, |
45 | }, | 52 | }, |
46 | info:{ | 53 | info:{ |
47 | - fontSize:22, | 54 | + fontSize:21, |
48 | - marginBottom: 5, | 55 | + marginBottom: 10, |
49 | - fontFamily:"Bold", | ||
50 | - }, | ||
51 | - score:{ | ||
52 | - fontSize:20, | ||
53 | fontFamily:"Bold", | 56 | fontFamily:"Bold", |
54 | }, | 57 | }, |
55 | scoreContainer:{ | 58 | scoreContainer:{ |
56 | flexDirection:'row', | 59 | flexDirection:'row', |
60 | + alignItems : 'center', | ||
57 | justifyContent: 'space-around', | 61 | justifyContent: 'space-around', |
58 | - width:'100%' | 62 | + width:'100%', |
63 | + backgroundColor :'#ececf8', | ||
64 | + padding : 5, | ||
65 | + marginTop : 10, | ||
66 | + marginBottom : 10, | ||
67 | + borderRadius:5, | ||
59 | }, | 68 | }, |
60 | data:{ | 69 | data:{ |
61 | - fontSize:10, | 70 | + fontFamily:"Son", |
62 | textAlign:'center', | 71 | textAlign:'center', |
63 | - fontFamily:"Regular", | 72 | + marginBottom:10, |
73 | + }, | ||
74 | + score:{ | ||
75 | + fontSize:20, | ||
76 | + fontFamily:"Bold" | ||
64 | }, | 77 | }, |
65 | past:{ | 78 | past:{ |
66 | alignItems:'center', | 79 | alignItems:'center', |
... | @@ -68,8 +81,9 @@ const styles = StyleSheet.create({ | ... | @@ -68,8 +81,9 @@ const styles = StyleSheet.create({ |
68 | }, | 81 | }, |
69 | message:{ | 82 | message:{ |
70 | fontFamily:"Son", | 83 | fontFamily:"Son", |
71 | - marginTop : 10, | 84 | + margin : 5, |
72 | - fontSize: 20, | 85 | + fontSize: 25, |
86 | + justifyContent: 'flex-start', | ||
73 | } | 87 | } |
74 | }); | 88 | }); |
75 | const RateLineContainer = ( {load,pastRecords } ) => ( | 89 | const RateLineContainer = ( {load,pastRecords } ) => ( | ... | ... |
... | @@ -35,7 +35,7 @@ const RateMessage = ({keywordText, score }) => { | ... | @@ -35,7 +35,7 @@ const RateMessage = ({keywordText, score }) => { |
35 | const styles = StyleSheet.create({ | 35 | const styles = StyleSheet.create({ |
36 | surface: { | 36 | surface: { |
37 | padding: 8, | 37 | padding: 8, |
38 | - flex: 0.2, | 38 | + flex: 0.225, |
39 | width: '95%', | 39 | width: '95%', |
40 | alignItems: 'center', | 40 | alignItems: 'center', |
41 | justifyContent: 'center', | 41 | justifyContent: 'center', | ... | ... |
... | @@ -43,7 +43,7 @@ const RateSentence = ({originalText, fixedText, keywordText }) => { | ... | @@ -43,7 +43,7 @@ const RateSentence = ({originalText, fixedText, keywordText }) => { |
43 | const styles = StyleSheet.create({ | 43 | const styles = StyleSheet.create({ |
44 | surface: { | 44 | surface: { |
45 | padding: 8, | 45 | padding: 8, |
46 | - flex: 0.2, | 46 | + flex: 0.225, |
47 | width: '95%', | 47 | width: '95%', |
48 | alignItems: 'center', | 48 | alignItems: 'center', |
49 | justifyContent: 'center', | 49 | justifyContent: 'center', | ... | ... |
-
Please register or login to post a comment