@eeacms/volto-eea-design-system 0.7.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -0
- package/package.json +1 -1
- package/src/ui/Card/AvatarGrid/AvatarGrid.jsx +25 -13
- package/src/ui/Card/AvatarGrid/AvatarGrid.stories.jsx +33 -13
- package/src/ui/Card/Card.stories.jsx +173 -77
- package/src/ui/Card/IconCard/IconCard.stories.jsx +195 -0
- package/src/ui/Card/PublicationCard.stories.jsx +15 -3
- package/src/ui/Card/RelatedContent/RelatedContent.jsx +30 -8
- package/src/ui/Card/RelatedContent/RelatedContent.stories.jsx +20 -0
- package/src/ui/Card/RoundedCard.stories.jsx +46 -20
- package/src/ui/Footer/Contact.jsx +11 -7
- package/src/ui/Footer/Footer.jsx +1 -1
- package/src/ui/Footer/FooterActions.jsx +24 -7
- package/src/ui/Footer/FooterHeader.jsx +1 -1
- package/src/ui/Footer/FooterSites.jsx +22 -10
- package/src/ui/Footer/SubFooter.jsx +42 -38
- package/src/ui/Header/HeaderMenuPopUp.js +63 -47
- package/theme/themes/eea/assets/images/Footer/Extras/footervisual.svg +2041 -1731
- package/theme/themes/eea/collections/breadcrumb.overrides +4 -0
- package/theme/themes/eea/collections/breadcrumb.variables +1 -1
- package/theme/themes/eea/extras/banner.less +0 -8
- package/theme/themes/eea/extras/custom.overrides +4 -1
- package/theme/themes/eea/extras/footer.less +93 -59
- package/theme/themes/eea/extras/footer.variables +31 -34
- package/theme/themes/eea/extras/header.less +13 -4
- package/theme/themes/eea/extras/header.variables +7 -4
- package/theme/themes/eea/globals/site.overrides +20 -0
- package/theme/themes/eea/globals/site.variables +9 -8
- package/theme/themes/eea/globals/utilities.less +6 -1
- package/theme/themes/eea/tokens/fonts.less +18 -17
- package/theme/themes/eea/views/card.overrides +179 -123
- package/theme/themes/eea/views/card.variables +34 -33
- package/theme/themes/eea/views/item.overrides +15 -1
- package/theme/themes/eea/views/item.variables +5 -2
|
@@ -28,10 +28,21 @@ export default {
|
|
|
28
28
|
const Template = (args) => (
|
|
29
29
|
<Container>
|
|
30
30
|
<Card className="publication tertiary">
|
|
31
|
-
<Image
|
|
31
|
+
<Image
|
|
32
|
+
as="a"
|
|
33
|
+
href={args.href}
|
|
34
|
+
src={args.image}
|
|
35
|
+
wrapped
|
|
36
|
+
ui={false}
|
|
37
|
+
alt="card image"
|
|
38
|
+
/>
|
|
32
39
|
<Card.Content>
|
|
33
|
-
<Card.Meta>
|
|
34
|
-
|
|
40
|
+
<Card.Meta>
|
|
41
|
+
<a href={args.href}>{args.tag}</a>
|
|
42
|
+
</Card.Meta>
|
|
43
|
+
<Card.Description>
|
|
44
|
+
<a href={args.href}>{args.description}</a>
|
|
45
|
+
</Card.Description>
|
|
35
46
|
</Card.Content>
|
|
36
47
|
</Card>
|
|
37
48
|
</Container>
|
|
@@ -43,4 +54,5 @@ PublicationCard.args = {
|
|
|
43
54
|
description:
|
|
44
55
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
45
56
|
image: imageUrl,
|
|
57
|
+
href: '/#',
|
|
46
58
|
};
|
|
@@ -32,11 +32,22 @@ RelatedContent.Grid = ({ children, ...rest }) => {
|
|
|
32
32
|
mobile={12}
|
|
33
33
|
>
|
|
34
34
|
{row.map((item, index) => (
|
|
35
|
-
<Card className="publication" key={index}>
|
|
36
|
-
<Image
|
|
35
|
+
<Card className="publication tertiary" key={index}>
|
|
36
|
+
<Image
|
|
37
|
+
as="a"
|
|
38
|
+
href={item.href}
|
|
39
|
+
src={item.image}
|
|
40
|
+
wrapped
|
|
41
|
+
ui={false}
|
|
42
|
+
alt="card image"
|
|
43
|
+
/>
|
|
37
44
|
<Card.Content>
|
|
38
|
-
<Card.Meta>
|
|
39
|
-
|
|
45
|
+
<Card.Meta>
|
|
46
|
+
<a href={item.href}>{item.tag}</a>
|
|
47
|
+
</Card.Meta>
|
|
48
|
+
<Card.Description>
|
|
49
|
+
<a href={item.href}>{item.description}</a>
|
|
50
|
+
</Card.Description>
|
|
40
51
|
</Card.Content>
|
|
41
52
|
</Card>
|
|
42
53
|
))}
|
|
@@ -50,11 +61,22 @@ RelatedContent.Grid = ({ children, ...rest }) => {
|
|
|
50
61
|
tablet={12}
|
|
51
62
|
mobile={12}
|
|
52
63
|
>
|
|
53
|
-
<Card className="publication">
|
|
54
|
-
<Image
|
|
64
|
+
<Card className="publication tertiary">
|
|
65
|
+
<Image
|
|
66
|
+
as="a"
|
|
67
|
+
href={item.href}
|
|
68
|
+
src={item.image}
|
|
69
|
+
wrapped
|
|
70
|
+
ui={false}
|
|
71
|
+
alt="card image"
|
|
72
|
+
/>
|
|
55
73
|
<Card.Content>
|
|
56
|
-
<Card.Meta>
|
|
57
|
-
|
|
74
|
+
<Card.Meta>
|
|
75
|
+
<a href={item.href}>{item.tag}</a>
|
|
76
|
+
</Card.Meta>
|
|
77
|
+
<Card.Description>
|
|
78
|
+
<a href={item.href}>{item.description}</a>
|
|
79
|
+
</Card.Description>
|
|
58
80
|
</Card.Content>
|
|
59
81
|
</Card>
|
|
60
82
|
</Grid.Column>
|
|
@@ -31,29 +31,34 @@ DefaultEven.args = {
|
|
|
31
31
|
description:
|
|
32
32
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
33
33
|
image: imageUrl,
|
|
34
|
+
href: '/#',
|
|
34
35
|
},
|
|
35
36
|
{
|
|
36
37
|
tag: '#Publication',
|
|
37
38
|
description: 'Leo fermentum sollicitudin suspendisse iaculis feugiat.',
|
|
38
39
|
image: imageUrl,
|
|
40
|
+
href: '/#',
|
|
39
41
|
},
|
|
40
42
|
{
|
|
41
43
|
tag: '#Publication',
|
|
42
44
|
description:
|
|
43
45
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. ',
|
|
44
46
|
image: imageUrl,
|
|
47
|
+
href: '/#',
|
|
45
48
|
},
|
|
46
49
|
{
|
|
47
50
|
tag: '#Publication',
|
|
48
51
|
description:
|
|
49
52
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. ',
|
|
50
53
|
image: imageUrl,
|
|
54
|
+
href: '/#',
|
|
51
55
|
},
|
|
52
56
|
{
|
|
53
57
|
tag: '#Publication',
|
|
54
58
|
description:
|
|
55
59
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
56
60
|
image: imageUrl,
|
|
61
|
+
href: '/#',
|
|
57
62
|
},
|
|
58
63
|
],
|
|
59
64
|
buttonText: 'See All',
|
|
@@ -104,17 +109,20 @@ DefaultOdd.args = {
|
|
|
104
109
|
description:
|
|
105
110
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
106
111
|
image: imageUrl,
|
|
112
|
+
href: '/#',
|
|
107
113
|
},
|
|
108
114
|
{
|
|
109
115
|
tag: '#Publication',
|
|
110
116
|
description: 'Leo fermentum sollicitudin suspendisse iaculis feugiat.',
|
|
111
117
|
image: imageUrl,
|
|
118
|
+
href: '/#',
|
|
112
119
|
},
|
|
113
120
|
{
|
|
114
121
|
tag: '#Publication',
|
|
115
122
|
description:
|
|
116
123
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. ',
|
|
117
124
|
image: imageUrl,
|
|
125
|
+
href: '/#',
|
|
118
126
|
},
|
|
119
127
|
],
|
|
120
128
|
buttonText: 'See All',
|
|
@@ -190,6 +198,7 @@ function TabWithRelatedContent({ panes }) {
|
|
|
190
198
|
menu={{
|
|
191
199
|
secondary: true,
|
|
192
200
|
pointing: true,
|
|
201
|
+
tabIndex: 0,
|
|
193
202
|
}}
|
|
194
203
|
/>
|
|
195
204
|
</Container>
|
|
@@ -209,6 +218,7 @@ RelatedContentInTab.args = {
|
|
|
209
218
|
description:
|
|
210
219
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
211
220
|
image: imageUrl,
|
|
221
|
+
href: '/#',
|
|
212
222
|
},
|
|
213
223
|
],
|
|
214
224
|
buttonText: 'See All',
|
|
@@ -222,12 +232,14 @@ RelatedContentInTab.args = {
|
|
|
222
232
|
description:
|
|
223
233
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
224
234
|
image: imageUrl,
|
|
235
|
+
href: '/#',
|
|
225
236
|
},
|
|
226
237
|
{
|
|
227
238
|
tag: '#Publication',
|
|
228
239
|
description:
|
|
229
240
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat.',
|
|
230
241
|
image: imageUrl,
|
|
242
|
+
href: '/#',
|
|
231
243
|
},
|
|
232
244
|
],
|
|
233
245
|
buttonText: 'See All',
|
|
@@ -241,18 +253,21 @@ RelatedContentInTab.args = {
|
|
|
241
253
|
description:
|
|
242
254
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
243
255
|
image: imageUrl,
|
|
256
|
+
href: '/#',
|
|
244
257
|
},
|
|
245
258
|
{
|
|
246
259
|
tag: '#Publication',
|
|
247
260
|
description:
|
|
248
261
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat.',
|
|
249
262
|
image: imageUrl,
|
|
263
|
+
href: '/#',
|
|
250
264
|
},
|
|
251
265
|
{
|
|
252
266
|
tag: '#Publication',
|
|
253
267
|
description:
|
|
254
268
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. ',
|
|
255
269
|
image: imageUrl,
|
|
270
|
+
href: '/#',
|
|
256
271
|
},
|
|
257
272
|
],
|
|
258
273
|
buttonText: 'See All',
|
|
@@ -266,30 +281,35 @@ RelatedContentInTab.args = {
|
|
|
266
281
|
description:
|
|
267
282
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
268
283
|
image: imageUrl,
|
|
284
|
+
href: '/#',
|
|
269
285
|
},
|
|
270
286
|
{
|
|
271
287
|
tag: '#Publication',
|
|
272
288
|
description:
|
|
273
289
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat.',
|
|
274
290
|
image: imageUrl,
|
|
291
|
+
href: '/#',
|
|
275
292
|
},
|
|
276
293
|
{
|
|
277
294
|
tag: '#Publication',
|
|
278
295
|
description:
|
|
279
296
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. ',
|
|
280
297
|
image: imageUrl,
|
|
298
|
+
href: '/#',
|
|
281
299
|
},
|
|
282
300
|
{
|
|
283
301
|
tag: '#Publication',
|
|
284
302
|
description:
|
|
285
303
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis. ',
|
|
286
304
|
image: imageUrl,
|
|
305
|
+
href: '/#',
|
|
287
306
|
},
|
|
288
307
|
{
|
|
289
308
|
tag: '#Publication',
|
|
290
309
|
description:
|
|
291
310
|
'Leo fermentum sollicitudin suspendisse iaculis feugiat. Eget tellus blandit aenean mattis.',
|
|
292
311
|
image: imageUrl,
|
|
312
|
+
href: '/#',
|
|
293
313
|
},
|
|
294
314
|
],
|
|
295
315
|
buttonText: 'See All',
|
|
@@ -11,13 +11,22 @@ export default {
|
|
|
11
11
|
},
|
|
12
12
|
},
|
|
13
13
|
argTypes: {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
variant: {
|
|
15
|
+
options: ['default', 'primary', 'secondary', 'tertiary'],
|
|
16
|
+
control: { type: 'select' },
|
|
17
|
+
description: 'card variation class',
|
|
16
18
|
table: {
|
|
17
19
|
type: {
|
|
18
|
-
summary: '
|
|
20
|
+
summary: 'string',
|
|
19
21
|
},
|
|
20
|
-
defaultValue: { summary:
|
|
22
|
+
defaultValue: { summary: 'null' },
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
inverted: {
|
|
26
|
+
description: 'Inverted card',
|
|
27
|
+
table: {
|
|
28
|
+
defaultValue: { summary: 'false' },
|
|
29
|
+
type: { summary: 'boolean' },
|
|
21
30
|
},
|
|
22
31
|
},
|
|
23
32
|
title: {
|
|
@@ -47,11 +56,8 @@ export default {
|
|
|
47
56
|
defaultValue: { summary: false },
|
|
48
57
|
},
|
|
49
58
|
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
control: { type: 'inline-radio' },
|
|
53
|
-
defaultValue: 'big',
|
|
54
|
-
description: 'rounded card size class',
|
|
59
|
+
src: {
|
|
60
|
+
description: 'rounded card image url',
|
|
55
61
|
table: {
|
|
56
62
|
type: {
|
|
57
63
|
summary: 'string',
|
|
@@ -59,13 +65,11 @@ export default {
|
|
|
59
65
|
defaultValue: { summary: ' "" ' },
|
|
60
66
|
},
|
|
61
67
|
},
|
|
62
|
-
|
|
63
|
-
description: '
|
|
68
|
+
hasLink: {
|
|
69
|
+
description: 'Clickable card',
|
|
64
70
|
table: {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
defaultValue: { summary: ' "" ' },
|
|
71
|
+
defaultValue: { summary: 'true' },
|
|
72
|
+
type: { summary: 'boolean' },
|
|
69
73
|
},
|
|
70
74
|
},
|
|
71
75
|
},
|
|
@@ -73,12 +77,32 @@ export default {
|
|
|
73
77
|
|
|
74
78
|
const AvatarTemplate = (args) => (
|
|
75
79
|
<Container>
|
|
76
|
-
<Card
|
|
77
|
-
{args.
|
|
80
|
+
<Card
|
|
81
|
+
className={`rounded ${args.variant === 'default' ? '' : args.variant} ${
|
|
82
|
+
args.inverted ? 'inverted' : ''
|
|
83
|
+
}`}
|
|
84
|
+
fluid={args.fluid}
|
|
85
|
+
>
|
|
86
|
+
{args.hasLink ? (
|
|
87
|
+
<Image
|
|
88
|
+
as="a"
|
|
89
|
+
href={args.href}
|
|
90
|
+
src={args.src}
|
|
91
|
+
wrapped
|
|
92
|
+
ui={false}
|
|
93
|
+
alt="card image"
|
|
94
|
+
/>
|
|
95
|
+
) : (
|
|
78
96
|
<Image src={args.src} wrapped ui={false} alt="card image" />
|
|
79
97
|
)}
|
|
80
98
|
<Card.Content>
|
|
81
|
-
|
|
99
|
+
{args.hasLink ? (
|
|
100
|
+
<Card.Header>
|
|
101
|
+
<a href={args.href}>{args.title}</a>
|
|
102
|
+
</Card.Header>
|
|
103
|
+
) : (
|
|
104
|
+
<Card.Header>{args.title}</Card.Header>
|
|
105
|
+
)}
|
|
82
106
|
<Card.Description>{args.description}</Card.Description>
|
|
83
107
|
</Card.Content>
|
|
84
108
|
</Card>
|
|
@@ -87,10 +111,12 @@ const AvatarTemplate = (args) => (
|
|
|
87
111
|
|
|
88
112
|
export const Default = AvatarTemplate.bind({});
|
|
89
113
|
Default.args = {
|
|
90
|
-
|
|
114
|
+
variant: 'default',
|
|
115
|
+
inverted: false,
|
|
91
116
|
src: imgUrl,
|
|
92
117
|
title: 'Lorem Ipsum',
|
|
93
118
|
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
94
|
-
hasImage: true,
|
|
95
119
|
fluid: false,
|
|
120
|
+
hasLink: true,
|
|
121
|
+
href: '/#',
|
|
96
122
|
};
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Icon } from 'semantic-ui-react';
|
|
3
2
|
import PropTypes from 'prop-types';
|
|
4
3
|
import { Link } from 'react-router-dom';
|
|
5
4
|
|
|
6
|
-
const Contact = ({ children, contacts
|
|
5
|
+
const Contact = ({ children, contacts }) =>
|
|
7
6
|
children?.length ? (
|
|
8
7
|
children
|
|
9
8
|
) : (
|
|
10
9
|
<div className="contact-block">
|
|
11
|
-
<p className="header">{header}</p>
|
|
12
10
|
{contacts?.map((contact, index) => (
|
|
13
11
|
<div className="contact" key={index}>
|
|
14
|
-
<Link to={contact.link}>
|
|
15
|
-
<Icon className={contact.icon} size="big"></Icon>
|
|
12
|
+
<Link to={contact.link} className="bold">
|
|
16
13
|
{contact.text}
|
|
17
14
|
</Link>
|
|
15
|
+
{contact.children && (
|
|
16
|
+
<div className="subcontact">
|
|
17
|
+
{contact.children.map((child, index) => (
|
|
18
|
+
<Link to={child.link} key={index}>
|
|
19
|
+
{child.text}
|
|
20
|
+
</Link>
|
|
21
|
+
))}
|
|
22
|
+
</div>
|
|
23
|
+
)}
|
|
18
24
|
</div>
|
|
19
25
|
))}
|
|
20
|
-
{address && <p className="address">{address}</p>}
|
|
21
26
|
</div>
|
|
22
27
|
);
|
|
23
28
|
|
|
24
29
|
Contact.propTypes = {
|
|
25
30
|
contacts: PropTypes.array,
|
|
26
31
|
header: PropTypes.string,
|
|
27
|
-
address: PropTypes.string,
|
|
28
32
|
};
|
|
29
33
|
|
|
30
34
|
export default Contact;
|
package/src/ui/Footer/Footer.jsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Link } from 'react-router-dom';
|
|
3
|
+
import { Grid } from 'semantic-ui-react';
|
|
3
4
|
|
|
4
5
|
const FooterActions = (props) => {
|
|
5
6
|
if (props.children) {
|
|
@@ -8,13 +9,29 @@ const FooterActions = (props) => {
|
|
|
8
9
|
|
|
9
10
|
return (
|
|
10
11
|
<div className="menu">
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<
|
|
14
|
-
{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
<Grid>
|
|
13
|
+
<Grid.Column mobile={12} tablet={6} computer={6}>
|
|
14
|
+
<div className="actions">
|
|
15
|
+
{props.actions &&
|
|
16
|
+
props.actions.map((action, index) => (
|
|
17
|
+
<Link to={action.link} key={index}>
|
|
18
|
+
{action.title}
|
|
19
|
+
</Link>
|
|
20
|
+
))}
|
|
21
|
+
</div>
|
|
22
|
+
</Grid.Column>
|
|
23
|
+
|
|
24
|
+
<Grid.Column mobile={12} tablet={6} computer={6}>
|
|
25
|
+
<div className="copyright">
|
|
26
|
+
{props.copyright &&
|
|
27
|
+
props.copyright.map((copyright, index) => (
|
|
28
|
+
<Link to={copyright.link} key={index}>
|
|
29
|
+
© Copyright {new Date().getFullYear()} {copyright.site}
|
|
30
|
+
</Link>
|
|
31
|
+
))}
|
|
32
|
+
</div>
|
|
33
|
+
</Grid.Column>
|
|
34
|
+
</Grid>
|
|
18
35
|
</div>
|
|
19
36
|
);
|
|
20
37
|
};
|
|
@@ -3,23 +3,35 @@ import { Grid, Image } from 'semantic-ui-react';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
|
|
5
5
|
const Sites = (props) => {
|
|
6
|
+
const getLogoColumns = (logos) => {
|
|
7
|
+
let column = [];
|
|
8
|
+
for (let i = 0; i < logos.length; i += 2) {
|
|
9
|
+
const item = logos[i];
|
|
10
|
+
const nextItem = logos[i + 1];
|
|
11
|
+
column.push(
|
|
12
|
+
<Grid.Column className="logo" key={i}>
|
|
13
|
+
<a className="logo" href={item.link}>
|
|
14
|
+
<Image src={item.src} alt={item.alt}></Image>
|
|
15
|
+
</a>
|
|
16
|
+
<a className="logo" href={nextItem.link}>
|
|
17
|
+
<Image src={nextItem.src} alt={nextItem.alt}></Image>
|
|
18
|
+
</a>
|
|
19
|
+
</Grid.Column>,
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
return column;
|
|
23
|
+
};
|
|
24
|
+
|
|
6
25
|
if (props.children) {
|
|
7
26
|
return <div>{props.children}</div>;
|
|
8
27
|
}
|
|
9
28
|
|
|
10
29
|
//fallback to props
|
|
11
30
|
return (
|
|
12
|
-
<div className="theme-sites
|
|
31
|
+
<div className="theme-sites">
|
|
13
32
|
<div className="logos">
|
|
14
|
-
<Grid columns={5}>
|
|
15
|
-
{props.sites
|
|
16
|
-
props.sites.map((site, index) => (
|
|
17
|
-
<Grid.Column className="logo" key={index}>
|
|
18
|
-
<a href={site.link}>
|
|
19
|
-
<Image src={site.src} alt={site.alt}></Image>
|
|
20
|
-
</a>
|
|
21
|
-
</Grid.Column>
|
|
22
|
-
))}
|
|
33
|
+
<Grid columns={5} stackable>
|
|
34
|
+
{getLogoColumns(props.sites)}
|
|
23
35
|
</Grid>
|
|
24
36
|
</div>
|
|
25
37
|
</div>
|
|
@@ -11,51 +11,55 @@ const SubFooter = (props) => {
|
|
|
11
11
|
return (
|
|
12
12
|
<div className={'subfooter'}>
|
|
13
13
|
<Grid>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
{
|
|
18
|
-
|
|
14
|
+
{props.managedBy &&
|
|
15
|
+
props.managedBy.map((manager, index) => (
|
|
16
|
+
<Grid.Column
|
|
17
|
+
mobile={manager.columnSize.mobile}
|
|
18
|
+
tablet={manager.columnSize.tablet}
|
|
19
|
+
computer={manager.columnSize.computer}
|
|
20
|
+
key={index}
|
|
21
|
+
className="mobile hidden"
|
|
22
|
+
>
|
|
23
|
+
<div className="item">
|
|
24
|
+
<div className={manager.className}>
|
|
25
|
+
<a href={manager.link}>
|
|
26
|
+
<Image src={manager.src} alt={manager.alt}></Image>
|
|
27
|
+
</a>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</Grid.Column>
|
|
31
|
+
))}
|
|
19
32
|
|
|
20
|
-
|
|
21
|
-
{props.managedBy &&
|
|
22
|
-
props.managedBy.map((manager, index) => (
|
|
23
|
-
<Grid.Column
|
|
24
|
-
mobile={manager.columnSize.mobile}
|
|
25
|
-
tablet={manager.columnSize.tablet}
|
|
26
|
-
computer={manager.columnSize.computer}
|
|
27
|
-
key={index}
|
|
28
|
-
>
|
|
29
|
-
<div className={manager.className}>
|
|
30
|
-
<a href={manager.link}>
|
|
31
|
-
<Image src={manager.src} alt={manager.alt}></Image>
|
|
32
|
-
</a>
|
|
33
|
-
</div>
|
|
34
|
-
</Grid.Column>
|
|
35
|
-
))}
|
|
36
|
-
</Grid>
|
|
37
|
-
</div>
|
|
38
|
-
</Grid.Column>
|
|
39
|
-
<Grid.Column
|
|
40
|
-
mobile={6}
|
|
41
|
-
tablet={2}
|
|
42
|
-
computer={2}
|
|
43
|
-
className="mobile hidden"
|
|
44
|
-
></Grid.Column>
|
|
45
|
-
<Grid.Column mobile={12} tablet={5} computer={4}>
|
|
33
|
+
<Grid.Column mobile={12} tablet={4} computer={4}>
|
|
46
34
|
<div className="item">
|
|
47
|
-
<Footer.Contact
|
|
48
|
-
contacts={props.contacts}
|
|
49
|
-
header={props.contactHeader}
|
|
50
|
-
address={props.address}
|
|
51
|
-
/>
|
|
52
|
-
<Footer.Social social={props.social} />
|
|
35
|
+
<Footer.Contact contacts={props.contacts} />
|
|
53
36
|
</div>
|
|
54
37
|
</Grid.Column>
|
|
55
38
|
</Grid>
|
|
39
|
+
|
|
56
40
|
<Grid.Row>
|
|
57
|
-
<Footer.
|
|
41
|
+
<Footer.Social social={props.social} />
|
|
58
42
|
</Grid.Row>
|
|
43
|
+
|
|
44
|
+
<Grid className="mobile only">
|
|
45
|
+
{props.managedBy &&
|
|
46
|
+
props.managedBy.map((manager, index) => (
|
|
47
|
+
<Grid.Column
|
|
48
|
+
mobile={manager.columnSize.mobile}
|
|
49
|
+
tablet={manager.columnSize.tablet}
|
|
50
|
+
computer={manager.columnSize.computer}
|
|
51
|
+
key={index}
|
|
52
|
+
>
|
|
53
|
+
<div className="item">
|
|
54
|
+
<div className={manager.className}>
|
|
55
|
+
<a href={manager.link}>
|
|
56
|
+
<Image src={manager.src} alt={manager.alt}></Image>
|
|
57
|
+
</a>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</Grid.Column>
|
|
61
|
+
))}
|
|
62
|
+
</Grid>
|
|
59
63
|
</div>
|
|
60
64
|
);
|
|
61
65
|
};
|