1
1
import React from 'react' ;
2
2
import styled from 'react-emotion' ;
3
3
import TimeIcon from 'react-icons/lib/md/access-time' ;
4
+ import format from 'date-fns/format' ;
4
5
import LocationIcon from 'react-icons/lib/md/location-on' ;
5
6
import AttendeesIcon from 'react-icons/lib/md/people' ;
6
7
import TicketIcon from 'react-icons/lib/md/exit-to-app' ;
@@ -9,74 +10,80 @@ import StreamIcon from 'react-icons/lib/md/desktop-mac';
9
10
import { Button , graySecondary } from '../../utils/base.styles' ;
10
11
11
12
const Card = styled . div `
12
- text-decoration: none;
13
- width: 100%;
14
- min-height: 150px;
13
+ display: flex;
14
+ flex-direction: row;
15
+ flex-wrap: wrap;
16
+ max-height: 120px;
17
+ justify-content: center;
18
+ align-content: stretch;
19
+ align-items: center;
15
20
margin-top: 20px;
16
- padding-right: 10px;
17
- display: grid;
18
- grid-template-columns: 1fr 2.5fr;
19
- grid-template-rows: 1.2fr 1fr 1fr;
20
- grid-template-areas:
21
- 'photo title'
22
- 'photo location'
23
- 'photo info';
24
- background: #fff;
25
21
border: 1px solid ${ graySecondary } ;
26
- transition: all 0.25s;
27
22
& .photo {
28
- grid-area: photo;
29
- object-fit: cover;
30
- height: 100%;
31
- width: 100%;
32
- }
33
- & .title {
34
- margin-left: 10px;
35
- grid-area: title;
36
- font-size: 1.5rem;
37
- color: #000;
38
- font-weight: 400;
39
- padding-top: 10px;
40
- }
41
- & .location {
42
- margin-left: 10px;
43
- grid-area: location;
44
- padding-top: 10px;
23
+ flex: 1 1 auto;
24
+ align-self: auto;
25
+ max-width: 180px;
45
26
}
46
- & .info {
47
- margin-left: 10px ;
48
- grid-area: info ;
27
+ & .content {
28
+ flex: 3 1 auto ;
29
+ align-self: stretch ;
49
30
display: flex;
50
- flex-direction: row ;
51
- flex-wrap: nowrap ;
52
- justify-content: flex-start ;
31
+ flex-direction: column ;
32
+ flex-wrap: wrap ;
33
+ justify-content: center ;
53
34
align-content: stretch;
54
- align-items: center;
55
- }
56
- & .infotext {
57
- order: 0;
58
- flex: 0 1 auto;
59
- align-self: auto;
60
- margin-right: 1rem;
61
- }
62
- & .rsvp {
63
- order: 0;
64
- align-items: flex-end;
65
- flex: 1 1 auto;
66
- align-self: auto;
67
- text-align: right;
35
+ align-items: flex-start;
36
+ margin: 5px;
37
+ & .title {
38
+ order: 1;
39
+ flex: 1.5 1 auto;
40
+ align-self: flex-start;
41
+ font-size: 1.2rem;
42
+ vertical-align: top;
43
+ font-weight: 400;
44
+ }
45
+ & .location {
46
+ order: 2;
47
+ flex: 1 1 auto;
48
+ align-self: auto;
49
+ font-size: 0.8rem;
50
+ }
51
+ & .info {
52
+ order: 3;
53
+ flex: 1 1 auto;
54
+ align-self: auto;
55
+ display: flex;
56
+ width: 100%;
57
+ font-size: 0.8rem;
58
+ flex-direction: row;
59
+ flex-wrap: nowrap;
60
+ justify-content: flex-start;
61
+ align-content: stretch;
62
+ align-items: center;
63
+ & .infotext {
64
+ flex: 0 1 auto;
65
+ align-self: auto;
66
+ margin-right: 1rem;
67
+ }
68
+ & .rsvp {
69
+ align-items: flex-end;
70
+ flex: 1 1 auto;
71
+ align-self: auto;
72
+ text-align: right;
73
+ }
74
+ }
75
+ & .icons{
76
+ font-size: 1rem;
77
+ margin-right: 0.25rem;
78
+ }
68
79
}
69
- & .icons{
70
- font-size: 1.1rem;
71
- margin-right: 0.25rem;
72
80
}
73
- }
74
81
` ;
75
82
76
83
export default props => (
77
- < div >
78
- < Card >
79
- < img className = "photo" src = { props . image } / >
84
+ < Card >
85
+ < img className = "photo" src = { props . image } / >
86
+ < div className = "content" >
80
87
< div className = "title" > { props . name } </ div >
81
88
< div className = "location" >
82
89
< LocationIcon className = "icons" />
@@ -85,7 +92,7 @@ export default props => (
85
92
< div className = "info" >
86
93
< div className = "infotext" >
87
94
< TimeIcon className = "icons" />
88
- { props . time }
95
+ { props . tense === 'past' ? format ( props . time , "ddd MMM Do 'YY" ) : format ( props . time , "h:mm A, ddd MMM Do 'YY" ) }
89
96
</ div >
90
97
< div className = "infotext" >
91
98
< AttendeesIcon className = "icons" />
@@ -103,6 +110,6 @@ export default props => (
103
110
</ Button >
104
111
</ div >
105
112
</ div >
106
- </ Card >
107
- </ div >
113
+ </ div >
114
+ </ Card >
108
115
) ;
0 commit comments