decap-cms-core 3.2.5 → 3.2.8
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/dist/decap-cms-core.js +9 -9
- package/dist/decap-cms-core.js.map +1 -1
- package/dist/esm/actions/auth.js +6 -12
- package/dist/esm/actions/config.js +5 -8
- package/dist/esm/actions/deploys.js +3 -6
- package/dist/esm/actions/editorialWorkflow.js +19 -36
- package/dist/esm/actions/entries.js +35 -68
- package/dist/esm/actions/media.js +6 -12
- package/dist/esm/actions/mediaLibrary.js +19 -36
- package/dist/esm/actions/notifications.js +3 -6
- package/dist/esm/actions/search.js +8 -16
- package/dist/esm/actions/status.js +3 -6
- package/dist/esm/backend.js +10 -8
- package/dist/esm/bootstrap.js +11 -12
- package/dist/esm/components/App/App.js +49 -50
- package/dist/esm/components/App/Header.js +42 -43
- package/dist/esm/components/App/NotFoundPage.js +5 -6
- package/dist/esm/components/Collection/Collection.js +23 -24
- package/dist/esm/components/Collection/CollectionControls.js +9 -10
- package/dist/esm/components/Collection/CollectionSearch.js +36 -37
- package/dist/esm/components/Collection/CollectionTop.js +18 -19
- package/dist/esm/components/Collection/ControlButton.js +6 -6
- package/dist/esm/components/Collection/Entries/Entries.js +15 -16
- package/dist/esm/components/Collection/Entries/EntriesCollection.js +11 -12
- package/dist/esm/components/Collection/Entries/EntriesSearch.js +3 -4
- package/dist/esm/components/Collection/Entries/EntryCard.js +35 -36
- package/dist/esm/components/Collection/Entries/EntryListing.js +10 -10
- package/dist/esm/components/Collection/FilterControl.js +5 -6
- package/dist/esm/components/Collection/GroupControl.js +5 -6
- package/dist/esm/components/Collection/NestedCollection.js +40 -41
- package/dist/esm/components/Collection/Sidebar.js +27 -28
- package/dist/esm/components/Collection/SortControl.js +5 -6
- package/dist/esm/components/Collection/ViewStyleControl.js +15 -16
- package/dist/esm/components/Editor/Editor.js +5 -6
- package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +24 -26
- package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +39 -39
- package/dist/esm/components/Editor/EditorControlPane/Widget.js +2 -2
- package/dist/esm/components/Editor/EditorInterface.js +67 -68
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +8 -8
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +3 -4
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +18 -19
- package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +1 -2
- package/dist/esm/components/Editor/EditorToolbar.js +155 -156
- package/dist/esm/components/Editor/withWorkflow.js +4 -4
- package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +3 -4
- package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +3 -4
- package/dist/esm/components/MediaLibrary/EmptyMessage.js +6 -7
- package/dist/esm/components/MediaLibrary/MediaLibrary.js +7 -8
- package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +17 -21
- package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +25 -26
- package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +29 -30
- package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +10 -11
- package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +10 -12
- package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +15 -16
- package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +27 -28
- package/dist/esm/components/UI/DragDrop.js +3 -3
- package/dist/esm/components/UI/ErrorBoundary.js +15 -16
- package/dist/esm/components/UI/FileUploadButton.js +3 -3
- package/dist/esm/components/UI/Modal.js +5 -5
- package/dist/esm/components/UI/Notifications.js +7 -8
- package/dist/esm/components/UI/SettingsDropdown.js +41 -42
- package/dist/esm/components/Workflow/Workflow.js +21 -22
- package/dist/esm/components/Workflow/WorkflowCard.js +44 -45
- package/dist/esm/components/Workflow/WorkflowList.js +56 -57
- package/dist/esm/constants/collectionTypes.js +2 -4
- package/dist/esm/constants/collectionViews.js +2 -4
- package/dist/esm/constants/commitProps.js +2 -4
- package/dist/esm/constants/configSchema.js +2 -2
- package/dist/esm/constants/fieldInference.js +8 -11
- package/dist/esm/constants/publishModes.js +6 -11
- package/dist/esm/constants/validationErrorTypes.js +2 -3
- package/dist/esm/formats/formats.js +5 -8
- package/dist/esm/formats/frontmatter.js +3 -4
- package/dist/esm/formats/json.js +2 -3
- package/dist/esm/formats/toml.js +2 -3
- package/dist/esm/formats/yaml.js +2 -3
- package/dist/esm/index.js +4 -6
- package/dist/esm/integrations/index.js +2 -3
- package/dist/esm/integrations/providers/algolia/implementation.js +2 -2
- package/dist/esm/integrations/providers/assetStore/implementation.js +2 -2
- package/dist/esm/lib/formatters.js +2 -2
- package/dist/esm/lib/i18n.js +5 -8
- package/dist/esm/lib/registry.js +3 -4
- package/dist/esm/lib/urlHelper.js +2 -2
- package/dist/esm/reducers/auth.js +2 -4
- package/dist/esm/reducers/collections.js +3 -4
- package/dist/esm/reducers/combinedReducer.js +3 -4
- package/dist/esm/reducers/config.js +3 -4
- package/dist/esm/reducers/cursors.js +1 -2
- package/dist/esm/reducers/deploys.js +1 -2
- package/dist/esm/reducers/editorialWorkflow.js +3 -4
- package/dist/esm/reducers/entries.js +3 -4
- package/dist/esm/reducers/entryDraft.js +1 -2
- package/dist/esm/reducers/globalUI.js +1 -2
- package/dist/esm/reducers/index.js +15 -12
- package/dist/esm/reducers/integrations.js +3 -4
- package/dist/esm/reducers/mediaLibrary.js +3 -4
- package/dist/esm/reducers/medias.js +1 -2
- package/dist/esm/reducers/notifications.js +3 -4
- package/dist/esm/reducers/search.js +1 -2
- package/dist/esm/reducers/status.js +1 -2
- package/dist/esm/redux/index.js +1 -2
- package/dist/esm/redux/middleware/waitUntilAction.js +1 -2
- package/dist/esm/routing/history.js +1 -2
- package/dist/esm/types/redux.js +2 -3
- package/dist/esm/valueObjects/EditorComponent.js +2 -2
- package/index.d.ts +1 -0
- package/package.json +4 -4
- package/src/backend.ts +6 -1
- package/src/components/App/Header.js +1 -1
- package/src/components/Collection/ControlButton.js +1 -1
- package/src/components/Collection/NestedCollection.js +1 -1
- package/src/components/Collection/Sidebar.js +1 -1
- package/src/components/Collection/__tests__/__snapshots__/Collection.spec.js.snap +16 -16
- package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +143 -143
- package/src/components/Collection/__tests__/__snapshots__/Sidebar.spec.js.snap +36 -36
- package/src/components/Editor/EditorControlPane/EditorControl.js +1 -1
- package/src/components/Editor/EditorControlPane/EditorControlPane.js +1 -1
- package/src/components/Editor/EditorInterface.js +1 -1
- package/src/components/Editor/EditorToolbar.js +1 -1
- package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +1000 -1102
- package/src/components/MediaLibrary/MediaLibraryButtons.js +1 -1
- package/src/components/MediaLibrary/__tests__/__snapshots__/MediaLibraryCard.spec.js.snap +94 -46
- package/src/components/UI/Modal.js +1 -1
- package/src/components/UI/SettingsDropdown.js +1 -1
- package/src/components/Workflow/WorkflowCard.js +1 -1
- package/src/components/Workflow/WorkflowList.js +1 -1
- package/src/types/redux.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { css } from '@emotion/
|
|
3
|
+
import { css } from '@emotion/react';
|
|
4
4
|
import styled from '@emotion/styled';
|
|
5
5
|
import copyToClipboard from 'copy-text-to-clipboard';
|
|
6
6
|
import { isAbsolutePath } from 'decap-cms-lib-util';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`MediaLibraryCard should match snapshot for draft image 1`] = `
|
|
4
4
|
<DocumentFragment>
|
|
5
|
-
.emotion-
|
|
5
|
+
.emotion-0 {
|
|
6
6
|
width: 100px;
|
|
7
7
|
height: 240px;
|
|
8
8
|
margin: 10px;
|
|
@@ -12,67 +12,83 @@ exports[`MediaLibraryCard should match snapshot for draft image 1`] = `
|
|
|
12
12
|
overflow: hidden;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.emotion-
|
|
15
|
+
.emotion-0:focus {
|
|
16
16
|
outline: none;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
.emotion-
|
|
19
|
+
.emotion-2 {
|
|
20
20
|
height: 162px;
|
|
21
21
|
background-color: #f2f2f2;
|
|
22
|
+
-webkit-background-size: 16px 16px;
|
|
22
23
|
background-size: 16px 16px;
|
|
24
|
+
-webkit-background-position: 0 0,8px 8px;
|
|
23
25
|
background-position: 0 0,8px 8px;
|
|
24
|
-
background-image: linear-gradient(
|
|
25
|
-
|
|
26
|
+
background-image: linear-gradient(
|
|
27
|
+
45deg,
|
|
28
|
+
#e6e6e6 25%,
|
|
29
|
+
transparent 25%,
|
|
30
|
+
transparent 75%,
|
|
31
|
+
#e6e6e6 75%,
|
|
32
|
+
#e6e6e6
|
|
33
|
+
),linear-gradient(
|
|
34
|
+
45deg,
|
|
35
|
+
#e6e6e6 25%,
|
|
36
|
+
transparent 25%,
|
|
37
|
+
transparent 75%,
|
|
38
|
+
#e6e6e6 75%,
|
|
39
|
+
#e6e6e6
|
|
40
|
+
);
|
|
41
|
+
box-shadow: inset 0 0 4px rgba(68, 74, 87, 0.3);
|
|
26
42
|
border-bottom: solid 2px #dfdfe3;
|
|
27
43
|
position: relative;
|
|
28
44
|
}
|
|
29
45
|
|
|
30
|
-
.emotion-
|
|
46
|
+
.emotion-4 {
|
|
47
|
+
color: #70399f;
|
|
48
|
+
background-color: #f6d8ff;
|
|
49
|
+
position: absolute;
|
|
50
|
+
padding: 8px;
|
|
51
|
+
border-radius: 5px 0 5px 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.emotion-6 {
|
|
31
55
|
width: 100%;
|
|
32
56
|
height: 160px;
|
|
33
57
|
object-fit: contain;
|
|
34
58
|
border-radius: 2px 2px 0 0;
|
|
35
59
|
}
|
|
36
60
|
|
|
37
|
-
.emotion-
|
|
61
|
+
.emotion-8 {
|
|
38
62
|
color: #798291;
|
|
39
63
|
padding: 8px;
|
|
40
64
|
margin-top: 20px;
|
|
41
65
|
overflow-wrap: break-word;
|
|
42
|
-
line-height: 1.3
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.emotion-0 {
|
|
46
|
-
color: #70399f;
|
|
47
|
-
background-color: #f6d8ff;
|
|
48
|
-
position: absolute;
|
|
49
|
-
padding: 8px;
|
|
50
|
-
border-radius: 5px 0 5px 0;
|
|
66
|
+
line-height: 1.3!important;
|
|
51
67
|
}
|
|
52
68
|
|
|
53
69
|
<div
|
|
54
|
-
class="emotion-
|
|
70
|
+
class="emotion-0 emotion-1"
|
|
55
71
|
height="240px"
|
|
56
72
|
tabindex="-1"
|
|
57
73
|
width="100px"
|
|
58
74
|
>
|
|
59
75
|
<div
|
|
60
|
-
class="emotion-
|
|
76
|
+
class="emotion-2 emotion-3"
|
|
61
77
|
>
|
|
62
78
|
<p
|
|
63
|
-
class="emotion-
|
|
79
|
+
class="emotion-4 emotion-5"
|
|
64
80
|
data-testid="draft-text"
|
|
65
81
|
>
|
|
66
82
|
Draft
|
|
67
83
|
</p>
|
|
68
84
|
<img
|
|
69
|
-
class="emotion-
|
|
85
|
+
class="emotion-6 emotion-7"
|
|
70
86
|
loading="lazy"
|
|
71
87
|
src="url"
|
|
72
88
|
/>
|
|
73
89
|
</div>
|
|
74
90
|
<p
|
|
75
|
-
class="emotion-
|
|
91
|
+
class="emotion-8 emotion-9"
|
|
76
92
|
>
|
|
77
93
|
image.png
|
|
78
94
|
</p>
|
|
@@ -82,7 +98,7 @@ exports[`MediaLibraryCard should match snapshot for draft image 1`] = `
|
|
|
82
98
|
|
|
83
99
|
exports[`MediaLibraryCard should match snapshot for non draft image 1`] = `
|
|
84
100
|
<DocumentFragment>
|
|
85
|
-
.emotion-
|
|
101
|
+
.emotion-0 {
|
|
86
102
|
width: 100px;
|
|
87
103
|
height: 240px;
|
|
88
104
|
margin: 10px;
|
|
@@ -92,38 +108,54 @@ exports[`MediaLibraryCard should match snapshot for non draft image 1`] = `
|
|
|
92
108
|
overflow: hidden;
|
|
93
109
|
}
|
|
94
110
|
|
|
95
|
-
.emotion-
|
|
111
|
+
.emotion-0:focus {
|
|
96
112
|
outline: none;
|
|
97
113
|
}
|
|
98
114
|
|
|
99
115
|
.emotion-2 {
|
|
100
116
|
height: 162px;
|
|
101
117
|
background-color: #f2f2f2;
|
|
118
|
+
-webkit-background-size: 16px 16px;
|
|
102
119
|
background-size: 16px 16px;
|
|
120
|
+
-webkit-background-position: 0 0,8px 8px;
|
|
103
121
|
background-position: 0 0,8px 8px;
|
|
104
|
-
background-image: linear-gradient(
|
|
105
|
-
|
|
122
|
+
background-image: linear-gradient(
|
|
123
|
+
45deg,
|
|
124
|
+
#e6e6e6 25%,
|
|
125
|
+
transparent 25%,
|
|
126
|
+
transparent 75%,
|
|
127
|
+
#e6e6e6 75%,
|
|
128
|
+
#e6e6e6
|
|
129
|
+
),linear-gradient(
|
|
130
|
+
45deg,
|
|
131
|
+
#e6e6e6 25%,
|
|
132
|
+
transparent 25%,
|
|
133
|
+
transparent 75%,
|
|
134
|
+
#e6e6e6 75%,
|
|
135
|
+
#e6e6e6
|
|
136
|
+
);
|
|
137
|
+
box-shadow: inset 0 0 4px rgba(68, 74, 87, 0.3);
|
|
106
138
|
border-bottom: solid 2px #dfdfe3;
|
|
107
139
|
position: relative;
|
|
108
140
|
}
|
|
109
141
|
|
|
110
|
-
.emotion-
|
|
142
|
+
.emotion-4 {
|
|
111
143
|
width: 100%;
|
|
112
144
|
height: 160px;
|
|
113
145
|
object-fit: contain;
|
|
114
146
|
border-radius: 2px 2px 0 0;
|
|
115
147
|
}
|
|
116
148
|
|
|
117
|
-
.emotion-
|
|
149
|
+
.emotion-6 {
|
|
118
150
|
color: #798291;
|
|
119
151
|
padding: 8px;
|
|
120
152
|
margin-top: 20px;
|
|
121
153
|
overflow-wrap: break-word;
|
|
122
|
-
line-height: 1.3
|
|
154
|
+
line-height: 1.3!important;
|
|
123
155
|
}
|
|
124
156
|
|
|
125
157
|
<div
|
|
126
|
-
class="emotion-
|
|
158
|
+
class="emotion-0 emotion-1"
|
|
127
159
|
height="240px"
|
|
128
160
|
tabindex="-1"
|
|
129
161
|
width="100px"
|
|
@@ -132,13 +164,13 @@ exports[`MediaLibraryCard should match snapshot for non draft image 1`] = `
|
|
|
132
164
|
class="emotion-2 emotion-3"
|
|
133
165
|
>
|
|
134
166
|
<img
|
|
135
|
-
class="emotion-
|
|
167
|
+
class="emotion-4 emotion-5"
|
|
136
168
|
loading="lazy"
|
|
137
169
|
src="url"
|
|
138
170
|
/>
|
|
139
171
|
</div>
|
|
140
172
|
<p
|
|
141
|
-
class="emotion-
|
|
173
|
+
class="emotion-6 emotion-7"
|
|
142
174
|
>
|
|
143
175
|
image.png
|
|
144
176
|
</p>
|
|
@@ -148,7 +180,7 @@ exports[`MediaLibraryCard should match snapshot for non draft image 1`] = `
|
|
|
148
180
|
|
|
149
181
|
exports[`MediaLibraryCard should match snapshot for non viewable image 1`] = `
|
|
150
182
|
<DocumentFragment>
|
|
151
|
-
.emotion-
|
|
183
|
+
.emotion-0 {
|
|
152
184
|
width: 100px;
|
|
153
185
|
height: 240px;
|
|
154
186
|
margin: 10px;
|
|
@@ -158,30 +190,38 @@ exports[`MediaLibraryCard should match snapshot for non viewable image 1`] = `
|
|
|
158
190
|
overflow: hidden;
|
|
159
191
|
}
|
|
160
192
|
|
|
161
|
-
.emotion-
|
|
193
|
+
.emotion-0:focus {
|
|
162
194
|
outline: none;
|
|
163
195
|
}
|
|
164
196
|
|
|
165
197
|
.emotion-2 {
|
|
166
198
|
height: 162px;
|
|
167
199
|
background-color: #f2f2f2;
|
|
200
|
+
-webkit-background-size: 16px 16px;
|
|
168
201
|
background-size: 16px 16px;
|
|
202
|
+
-webkit-background-position: 0 0,8px 8px;
|
|
169
203
|
background-position: 0 0,8px 8px;
|
|
170
|
-
background-image: linear-gradient(
|
|
171
|
-
|
|
204
|
+
background-image: linear-gradient(
|
|
205
|
+
45deg,
|
|
206
|
+
#e6e6e6 25%,
|
|
207
|
+
transparent 25%,
|
|
208
|
+
transparent 75%,
|
|
209
|
+
#e6e6e6 75%,
|
|
210
|
+
#e6e6e6
|
|
211
|
+
),linear-gradient(
|
|
212
|
+
45deg,
|
|
213
|
+
#e6e6e6 25%,
|
|
214
|
+
transparent 25%,
|
|
215
|
+
transparent 75%,
|
|
216
|
+
#e6e6e6 75%,
|
|
217
|
+
#e6e6e6
|
|
218
|
+
);
|
|
219
|
+
box-shadow: inset 0 0 4px rgba(68, 74, 87, 0.3);
|
|
172
220
|
border-bottom: solid 2px #dfdfe3;
|
|
173
221
|
position: relative;
|
|
174
222
|
}
|
|
175
223
|
|
|
176
224
|
.emotion-4 {
|
|
177
|
-
color: #798291;
|
|
178
|
-
padding: 8px;
|
|
179
|
-
margin-top: 20px;
|
|
180
|
-
overflow-wrap: break-word;
|
|
181
|
-
line-height: 1.3 !important;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
.emotion-0 {
|
|
185
225
|
width: 100%;
|
|
186
226
|
height: 160px;
|
|
187
227
|
object-fit: cover;
|
|
@@ -190,8 +230,16 @@ exports[`MediaLibraryCard should match snapshot for non viewable image 1`] = `
|
|
|
190
230
|
font-size: 3em;
|
|
191
231
|
}
|
|
192
232
|
|
|
233
|
+
.emotion-6 {
|
|
234
|
+
color: #798291;
|
|
235
|
+
padding: 8px;
|
|
236
|
+
margin-top: 20px;
|
|
237
|
+
overflow-wrap: break-word;
|
|
238
|
+
line-height: 1.3!important;
|
|
239
|
+
}
|
|
240
|
+
|
|
193
241
|
<div
|
|
194
|
-
class="emotion-
|
|
242
|
+
class="emotion-0 emotion-1"
|
|
195
243
|
height="240px"
|
|
196
244
|
tabindex="-1"
|
|
197
245
|
width="100px"
|
|
@@ -200,14 +248,14 @@ exports[`MediaLibraryCard should match snapshot for non viewable image 1`] = `
|
|
|
200
248
|
class="emotion-2 emotion-3"
|
|
201
249
|
>
|
|
202
250
|
<div
|
|
203
|
-
class="emotion-
|
|
251
|
+
class="emotion-4 emotion-5"
|
|
204
252
|
data-testid="card-file-icon"
|
|
205
253
|
>
|
|
206
254
|
Not Viewable
|
|
207
255
|
</div>
|
|
208
256
|
</div>
|
|
209
257
|
<p
|
|
210
|
-
class="emotion-
|
|
258
|
+
class="emotion-6 emotion-7"
|
|
211
259
|
>
|
|
212
260
|
image.png
|
|
213
261
|
</p>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { css, Global, ClassNames } from '@emotion/
|
|
3
|
+
import { css, Global, ClassNames } from '@emotion/react';
|
|
4
4
|
import ReactModal from 'react-modal';
|
|
5
5
|
import { transitions, shadows, lengths, zIndex } from 'decap-cms-ui-default';
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { css } from '@emotion/
|
|
3
|
+
import { css } from '@emotion/react';
|
|
4
4
|
import styled from '@emotion/styled';
|
|
5
5
|
import { translate } from 'react-polyglot';
|
|
6
6
|
import { Icon, Dropdown, DropdownItem, DropdownButton, colors } from 'decap-cms-ui-default';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { css } from '@emotion/
|
|
3
|
+
import { css } from '@emotion/react';
|
|
4
4
|
import styled from '@emotion/styled';
|
|
5
5
|
import { translate } from 'react-polyglot';
|
|
6
6
|
import { Link } from 'react-router-dom';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
4
|
-
import { css } from '@emotion/
|
|
4
|
+
import { css } from '@emotion/react';
|
|
5
5
|
import styled from '@emotion/styled';
|
|
6
6
|
import moment from 'moment';
|
|
7
7
|
import { translate } from 'react-polyglot';
|