@griddo/ax 10.5.0 → 10.5.1
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/package.json +2 -2
- package/src/components/ConfigPanel/Header/index.tsx +6 -1
- package/src/components/ErrorPage/index.tsx +3 -2
- package/src/components/Fields/ReferenceField/index.tsx +6 -1
- package/src/components/Fields/ReferenceField/style.tsx +17 -1
- package/src/components/Gallery/GalleryPanel/DetailPanel/index.tsx +32 -23
- package/src/containers/PageEditor/actions.tsx +2 -2
- package/src/modules/Sites/SitesList/atoms.tsx +1 -1
- package/src/modules/Sites/SitesList/style.tsx +2 -2
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@griddo/ax",
|
|
3
3
|
"description": "Griddo Author Experience",
|
|
4
|
-
"version": "10.5.
|
|
4
|
+
"version": "10.5.1",
|
|
5
5
|
"authors": [
|
|
6
6
|
"Álvaro Sánchez' <alvaro.sanches@secuoyas.com>",
|
|
7
7
|
"Carlos Torres <carlos.torres@secuoyas.com>",
|
|
@@ -232,5 +232,5 @@
|
|
|
232
232
|
"publishConfig": {
|
|
233
233
|
"access": "public"
|
|
234
234
|
},
|
|
235
|
-
"gitHead": "
|
|
235
|
+
"gitHead": "f842edf11120496e8a25aa8b5e75b3fb0d9f1225"
|
|
236
236
|
}
|
|
@@ -30,6 +30,7 @@ const Header = (props: IHeaderProps) => {
|
|
|
30
30
|
const { isVisible, toggleToast, setIsVisible } = useToast();
|
|
31
31
|
const [y, setY] = useState(window.scrollY);
|
|
32
32
|
const [scrollDown, setScrollDown] = useState(false);
|
|
33
|
+
const [breadcrumbOld, setBreadcrumbOld] = useState(breadcrumb);
|
|
33
34
|
|
|
34
35
|
const handleNavigation = useCallback(
|
|
35
36
|
(e: Event) => {
|
|
@@ -59,7 +60,11 @@ const Header = (props: IHeaderProps) => {
|
|
|
59
60
|
if (headerRef.current) {
|
|
60
61
|
const height = headerRef.current.offsetHeight + headerRef.current.offsetTop;
|
|
61
62
|
setHeaderHeight(height);
|
|
62
|
-
|
|
63
|
+
setBreadcrumbOld(breadcrumb);
|
|
64
|
+
if (JSON.stringify(breadcrumbOld) !== JSON.stringify(breadcrumb)) {
|
|
65
|
+
window.scrollTo(0, 0);
|
|
66
|
+
setBreadcrumbOld(breadcrumb);
|
|
67
|
+
}
|
|
63
68
|
}
|
|
64
69
|
}, [headerRef, breadcrumb, setHeaderHeight]);
|
|
65
70
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { RouteComponentProps, withRouter } from "react-router-dom";
|
|
2
|
+
import { RouteComponentProps, useHistory, withRouter } from "react-router-dom";
|
|
3
3
|
import { Button, Circle, Icon } from "@ax/components";
|
|
4
4
|
|
|
5
5
|
import * as S from "./style";
|
|
6
6
|
|
|
7
7
|
const ErrorPage = (props: IProps): JSX.Element => {
|
|
8
|
-
const { type
|
|
8
|
+
const { type } = props;
|
|
9
|
+
const history = useHistory();
|
|
9
10
|
|
|
10
11
|
const griddoLogo = "/img/logos/logoGriddoExtended@3x.svg";
|
|
11
12
|
|
|
@@ -5,7 +5,7 @@ import { useModal } from "@ax/hooks";
|
|
|
5
5
|
import { IStructuredDataContent, IDataSource, ISite, IRootState, IStructuredData } from "@ax/types";
|
|
6
6
|
import { structuredData } from "@ax/api";
|
|
7
7
|
import { capitalize, isReqOk, splitCamelCase } from "@ax/helpers";
|
|
8
|
-
import { IconAction, FloatingPanel, Select, Tag } from "@ax/components";
|
|
8
|
+
import { IconAction, FloatingPanel, Select, Tag, Icon } from "@ax/components";
|
|
9
9
|
import AutoPanel from "./AutoPanel";
|
|
10
10
|
import ItemList from "./ItemList";
|
|
11
11
|
import ManualPanel from "./ManualPanel";
|
|
@@ -228,6 +228,11 @@ const ReferenceField = (props: IReferenceFieldProps) => {
|
|
|
228
228
|
Elements
|
|
229
229
|
<Asterisk />
|
|
230
230
|
</S.Label>
|
|
231
|
+
<S.Note>
|
|
232
|
+
Only <strong>published</strong> ( <Icon name="active" size="16" /> ) data is displayed. 'Pending to
|
|
233
|
+
publish' ( <Icon name="uploadPending" size="16" /> ) data won't appear until the publishing
|
|
234
|
+
process is complete.
|
|
235
|
+
</S.Note>
|
|
231
236
|
<S.ModeWrapper>
|
|
232
237
|
{!singleMode && (
|
|
233
238
|
<Select
|
|
@@ -18,7 +18,7 @@ const Asterisk = styled.span`
|
|
|
18
18
|
const ActionWrapper = styled.div`
|
|
19
19
|
position: absolute;
|
|
20
20
|
right: 0;
|
|
21
|
-
top: ${(p) => p.theme.spacing.
|
|
21
|
+
top: ${(p) => p.theme.spacing.xxs};
|
|
22
22
|
`;
|
|
23
23
|
|
|
24
24
|
const DataWrapper = styled.div`
|
|
@@ -47,6 +47,7 @@ const Title = styled.span`
|
|
|
47
47
|
|
|
48
48
|
const ModeWrapper = styled.div`
|
|
49
49
|
display: flex;
|
|
50
|
+
position: relative;
|
|
50
51
|
align-items: center;
|
|
51
52
|
min-height: 32px;
|
|
52
53
|
margin-bottom: ${(p) => p.theme.spacing.xxs};
|
|
@@ -57,6 +58,20 @@ const SingleModeText = styled.span`
|
|
|
57
58
|
color: ${(p) => p.theme.colors.textHighEmphasis};
|
|
58
59
|
`;
|
|
59
60
|
|
|
61
|
+
const Note = styled.div`
|
|
62
|
+
${(p) => p.theme.textStyle.uiXS};
|
|
63
|
+
background-color: ${(p) => p.theme.color.uiBackground03};
|
|
64
|
+
padding: ${(p) => p.theme.spacing.s};
|
|
65
|
+
border-radius: ${(p) => p.theme.radii.s};
|
|
66
|
+
color: ${(p) => p.theme.color.textMediumEmphasis};
|
|
67
|
+
margin-top: ${(p) => p.theme.spacing.xxs};
|
|
68
|
+
margin-bottom: ${(p) => p.theme.spacing.xxs};
|
|
69
|
+
svg {
|
|
70
|
+
vertical-align: middle;
|
|
71
|
+
display: inline-block;
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
|
|
60
75
|
export {
|
|
61
76
|
Asterisk,
|
|
62
77
|
Wrapper,
|
|
@@ -69,4 +84,5 @@ export {
|
|
|
69
84
|
Title,
|
|
70
85
|
ModeWrapper,
|
|
71
86
|
SingleModeText,
|
|
87
|
+
Note,
|
|
72
88
|
};
|
|
@@ -203,7 +203,14 @@ const GalleryDetailPanel = (props: IProps) => {
|
|
|
203
203
|
onChange={handleDescription}
|
|
204
204
|
disabled={!isAllowedToEdit}
|
|
205
205
|
/>
|
|
206
|
-
<FieldsBehavior
|
|
206
|
+
<FieldsBehavior
|
|
207
|
+
title="Tags"
|
|
208
|
+
value={imageForm.tags}
|
|
209
|
+
fieldType="TagsField"
|
|
210
|
+
onChange={handleTags}
|
|
211
|
+
disabled={!isAllowedToEdit}
|
|
212
|
+
helptext="Type a tag and press enter to create it"
|
|
213
|
+
/>
|
|
207
214
|
</S.FormWrapper>
|
|
208
215
|
</S.PanelForm>
|
|
209
216
|
);
|
|
@@ -222,28 +229,30 @@ const GalleryDetailPanel = (props: IProps) => {
|
|
|
222
229
|
{isSaving.delete ? `Deleting` : `Delete`}
|
|
223
230
|
</Button>
|
|
224
231
|
)}
|
|
225
|
-
{isAllowedToEdit &&
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
232
|
+
{isAllowedToEdit && (
|
|
233
|
+
<Button
|
|
234
|
+
type="button"
|
|
235
|
+
buttonStyle="line"
|
|
236
|
+
onClick={handleSave}
|
|
237
|
+
disabled={isSaving.save || isSaving.saveAdd || isSaving.delete}
|
|
238
|
+
>
|
|
239
|
+
{isSaving.save ? `Saving` : `Save`}
|
|
240
|
+
</Button>
|
|
241
|
+
)}
|
|
242
|
+
{isAllowedToEdit && (
|
|
243
|
+
<Button
|
|
244
|
+
type="button"
|
|
245
|
+
onClick={handleSaveAndAdd}
|
|
246
|
+
disabled={isSaving.save || isSaving.saveAdd || isSaving.delete}
|
|
247
|
+
>
|
|
248
|
+
{isSaving.saveAdd ? `Saving` : `Save & Add`}
|
|
249
|
+
</Button>
|
|
250
|
+
)}
|
|
251
|
+
{!isAllowedToEdit && (
|
|
252
|
+
<Button type="button" onClick={handleAdd} disabled={isSaving.delete}>
|
|
253
|
+
Add
|
|
254
|
+
</Button>
|
|
255
|
+
)}
|
|
247
256
|
</S.PanelActions>
|
|
248
257
|
{deletedToast && <Toast message="1 image deleted" setIsVisible={setDeletedToast} />}
|
|
249
258
|
</S.DetailPanelWrapper>
|
|
@@ -1091,7 +1091,7 @@ function setSelectedContent(editorID: number): (dispatch: Dispatch, getState: an
|
|
|
1091
1091
|
|
|
1092
1092
|
dispatch(setIsLoading(true));
|
|
1093
1093
|
const {
|
|
1094
|
-
pageEditor: { editorContent },
|
|
1094
|
+
pageEditor: { editorContent, tab },
|
|
1095
1095
|
navigation: { header },
|
|
1096
1096
|
} = getState();
|
|
1097
1097
|
/*
|
|
@@ -1110,7 +1110,7 @@ function setSelectedContent(editorID: number): (dispatch: Dispatch, getState: an
|
|
|
1110
1110
|
|
|
1111
1111
|
const schema = getSchema(component);
|
|
1112
1112
|
const defaultTab = "content";
|
|
1113
|
-
dispatch(setTab(defaultTab));
|
|
1113
|
+
dispatch(setTab(tab || defaultTab));
|
|
1114
1114
|
dispatch(setSchema(schema));
|
|
1115
1115
|
dispatch(setSelectedEditorID(editorID));
|
|
1116
1116
|
dispatch(updateBreadcrumb(editorID));
|
|
@@ -20,7 +20,7 @@ export const ItemThumbnail = (props: IItemThumbnailProps): JSX.Element => {
|
|
|
20
20
|
const { src, width, height, borderRadius } = props;
|
|
21
21
|
const thumbnailPlaceholder = "/img/placeholder/thumbnail@1x.png";
|
|
22
22
|
return src ? (
|
|
23
|
-
<S.ImageWrapper data-testid="sites-item-thumbnail-wrapper" borderRadius={borderRadius}>
|
|
23
|
+
<S.ImageWrapper data-testid="sites-item-thumbnail-wrapper" borderRadius={borderRadius} height={height}>
|
|
24
24
|
<Image width={width} height={height} url={src} />
|
|
25
25
|
</S.ImageWrapper>
|
|
26
26
|
) : (
|
|
@@ -153,8 +153,8 @@ const EmptyStateWrapper = styled.div`
|
|
|
153
153
|
margin-top: 100px;
|
|
154
154
|
`;
|
|
155
155
|
|
|
156
|
-
const ImageWrapper = styled.div<{ borderRadius?: boolean }>`
|
|
157
|
-
height:
|
|
156
|
+
const ImageWrapper = styled.div<{ borderRadius?: boolean; height: number }>`
|
|
157
|
+
height: ${(p) => (p.height ? p.height : 199)}px;
|
|
158
158
|
img {
|
|
159
159
|
border-radius: ${(p) => (p.borderRadius ? p.theme.spacing.xs : 0)};
|
|
160
160
|
object-fit: cover;
|