@@ -8,6 +8,45 @@ import ExperienceCircle from '../helpers/ExperienceCircle';
8
8
import LikeRide from '../helpers/LikeRide' ;
9
9
import TagsForRide from './TagsForRide' ;
10
10
11
+ export const RideCardHeader : FC < {
12
+ ride : Ride ;
13
+ trip_param : string ;
14
+ } > = ( { ride, trip_param } ) => {
15
+ return (
16
+ < div className = "flex items-center justify-between mb-2" >
17
+ < div className = "flex items-center gap-2" >
18
+ < Badge size = "xs" color = "purple" >
19
+ { getOrdinalNumber ( ride . number ) }
20
+ </ Badge >
21
+ < h2 className = "text-xl font-bold text-gray-900 dark:text-white" >
22
+ < Link href = { `/trips/${ trip_param } ` } > { ride . title } </ Link >
23
+ </ h2 >
24
+ </ div >
25
+ < div className = "flex items-center overflow-x-scroll gap-2" >
26
+ < div className = "flex items-center gap-2" >
27
+ < TagsForRide ride = { ride } />
28
+ </ div >
29
+ { ride . vehicle && vehicleToIcon ( ride . vehicle ) }
30
+ { ride . waiting_time && (
31
+ < Tooltip content = "Waiting time" >
32
+ < Badge size = "xs" color = "purple" >
33
+ { ride . waiting_time }
34
+ </ Badge >
35
+ </ Tooltip >
36
+ ) }
37
+ < Tooltip
38
+ content = { `${ getOrdinalNumber ( ride . number ) } Ride, ${
39
+ ride . experience
40
+ } Experience`}
41
+ >
42
+ < ExperienceCircle experience = { ride . experience } size = { 4 } />
43
+ </ Tooltip >
44
+ < LikeRide ride = { ride } />
45
+ </ div >
46
+ </ div >
47
+ ) ;
48
+ } ;
49
+
11
50
const RideCard : FC < { ride : Ride ; trip_param : string } > = ( {
12
51
ride,
13
52
trip_param,
@@ -16,33 +55,7 @@ const RideCard: FC<{ ride: Ride; trip_param: string }> = ({
16
55
< Fragment >
17
56
{ ride . story && (
18
57
< >
19
- < div className = "flex items-center justify-between mb-2" >
20
- < div className = "flex items-center gap-2" >
21
- < Badge size = "xs" color = "purple" >
22
- { getOrdinalNumber ( ride . number ) }
23
- </ Badge >
24
- < h2 className = "text-xl font-bold text-gray-900 dark:text-white" >
25
- < Link href = { `/trips/${ trip_param } ` } > { ride . title } </ Link >
26
- </ h2 >
27
- </ div >
28
- < div className = "flex items-center gap-2" >
29
- { ride . vehicle && vehicleToIcon ( ride . vehicle ) }
30
- < Tooltip
31
- content = { `${ getOrdinalNumber ( ride . number ) } Ride, ${
32
- ride . experience
33
- } Experience`}
34
- >
35
- < ExperienceCircle experience = { ride . experience } size = { 4 } />
36
- </ Tooltip >
37
- < LikeRide ride = { ride } />
38
- </ div >
39
- </ div >
40
- < div className = "flex items-center overflow-x-scroll gap-2" >
41
- { ride . tags . map ( ( tag , index ) => (
42
- < TagsForRide ride = { ride } key = { `tag${ index } ` } />
43
- ) ) }
44
- </ div >
45
-
58
+ < RideCardHeader ride = { ride } trip_param = { trip_param } />
46
59
{ ride . story && (
47
60
< p className = "mt-1 mb-5 font-light text-gray-500 dark:text-gray-400" >
48
61
{ ride . story }
0 commit comments