@@ -74,9 +74,6 @@ const s = StyleSheet.create({
7474 skillList : { flex : 1 , fontSize : 8.5 , color : colors . secondary } ,
7575 // Company
7676 companyOuterFirst : { marginTop : 6 } ,
77- companyOuter : { marginTop : 18 } ,
78- companyIntro : { } ,
79- companyIntroDivided : { paddingTop : 16 , borderTopWidth : 1 , borderTopColor : colors . border } ,
8077 companyHeader : { flexDirection : "row" , justifyContent : "space-between" , alignItems : "baseline" , marginBottom : 3 } ,
8178 companyName : { fontSize : 13 , fontWeight : 700 , letterSpacing : - 0.2 } ,
8279 companyPeriod : { fontSize : 8.5 , color : colors . muted } ,
@@ -124,14 +121,31 @@ function BoldText({ style, children }: { style: Styles[string]; children: string
124121 )
125122}
126123
124+ function TaskGroup ( { task } : { task : ( typeof PROJECTS ) [ number ] [ "tasks" ] [ number ] } ) {
125+ return (
126+ < View style = { s . taskGroup } wrap = { false } >
127+ < View style = { s . taskRow } >
128+ < Text style = { s . taskBullet } > ·</ Text >
129+ < BoldText style = { s . taskItem } > { task . content } </ BoldText >
130+ </ View >
131+ { task . details ?. map ( ( detail , j ) => (
132+ < View key = { j } style = { s . detailRow } >
133+ < Text style = { s . detailArrow } > →</ Text >
134+ < BoldText style = { s . detailItem } > { detail } </ BoldText >
135+ </ View >
136+ ) ) }
137+ </ View >
138+ )
139+ }
140+
127141function CompanySection ( { company, isFirst } : { company : Company ; isFirst : boolean } ) {
128142 const companyProjects = company . projects
129143 . map ( ( ps ) => PROJECTS . find ( ( p ) => p . slug === ps . slug ) )
130144 . filter ( Boolean )
131145
132146 return (
133- < View style = { isFirst ? s . companyOuterFirst : s . companyOuter } >
134- < View wrap = { false } minPresenceAhead = { 80 } style = { isFirst ? s . companyIntro : s . companyIntroDivided } >
147+ < View break = { ! isFirst } style = { isFirst ? s . companyOuterFirst : undefined } >
148+ < View wrap = { false } minPresenceAhead = { 80 } >
135149 < View style = { s . companyHeader } >
136150 < Text style = { s . companyName } > { company . name } </ Text >
137151 < Text style = { s . companyPeriod } > { company . period } </ Text >
@@ -141,23 +155,13 @@ function CompanySection({ company, isFirst }: { company: Company; isFirst: boole
141155
142156 { companyProjects . map ( ( project ) => (
143157 < View key = { project ! . slug } style = { s . projectBox } >
144- < View wrap = { false } minPresenceAhead = { 50 } >
158+ < View wrap = { false } >
145159 < Text style = { s . projectName } > { project ! . name } </ Text >
146160 < Text style = { s . techInline } > { project ! . tech . join ( " · " ) } </ Text >
161+ { project ! . tasks [ 0 ] && < TaskGroup task = { project ! . tasks [ 0 ] } /> }
147162 </ View >
148- { project ! . tasks . map ( ( task , i ) => (
149- < View key = { i } style = { s . taskGroup } wrap = { false } >
150- < View style = { s . taskRow } >
151- < Text style = { s . taskBullet } > ·</ Text >
152- < BoldText style = { s . taskItem } > { task . content } </ BoldText >
153- </ View >
154- { task . details ?. map ( ( detail , j ) => (
155- < View key = { j } style = { s . detailRow } >
156- < Text style = { s . detailArrow } > →</ Text >
157- < BoldText style = { s . detailItem } > { detail } </ BoldText >
158- </ View >
159- ) ) }
160- </ View >
163+ { project ! . tasks . slice ( 1 ) . map ( ( task , i ) => (
164+ < TaskGroup key = { i } task = { task } />
161165 ) ) }
162166 { project ! . achievements && project ! . achievements . length > 0 && (
163167 < View style = { s . achGroup } >
0 commit comments