decentraland-ui2 0.8.7-12672622196.commit-d2cfa98 → 0.8.8-12715203702.commit-365ad79
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/MarketingBanner/MarketingBanner.d.ts +3 -0
- package/dist/components/MarketingBanner/MarketingBanner.js +23 -0
- package/dist/components/MarketingBanner/MarketingBanner.js.map +1 -0
- package/dist/components/MarketingBanner/MarketingBanner.stories.d.ts +16 -0
- package/dist/components/MarketingBanner/MarketingBanner.stories.js +34 -0
- package/dist/components/MarketingBanner/MarketingBanner.stories.js.map +1 -0
- package/dist/components/MarketingBanner/MarketingBanner.styled.d.ts +58 -0
- package/dist/components/MarketingBanner/MarketingBanner.styled.js +123 -0
- package/dist/components/MarketingBanner/MarketingBanner.styled.js.map +1 -0
- package/dist/components/MarketingBanner/MarketingBanner.types.d.ts +29 -0
- package/dist/components/MarketingBanner/MarketingBanner.types.js +2 -0
- package/dist/components/MarketingBanner/MarketingBanner.types.js.map +1 -0
- package/dist/components/MarketingBanner/index.d.ts +2 -0
- package/dist/components/MarketingBanner/index.js +2 -0
- package/dist/components/MarketingBanner/index.js.map +1 -0
- package/dist/hooks/contenful/contentful.d.ts +9 -0
- package/dist/hooks/contenful/contentful.js +54 -0
- package/dist/hooks/contenful/contentful.js.map +1 -0
- package/dist/hooks/contenful/contentful.types.d.ts +53 -0
- package/dist/hooks/contenful/contentful.types.js +8 -0
- package/dist/hooks/contenful/contentful.types.js.map +1 -0
- package/dist/hooks/contenful/index.d.ts +2 -0
- package/dist/hooks/contenful/index.js +3 -0
- package/dist/hooks/contenful/index.js.map +1 -0
- package/package.json +4 -2
@@ -0,0 +1,23 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { documentToReactComponents } from "@contentful/rich-text-react-renderer";
|
3
|
+
import CircularProgress from "@mui/material/CircularProgress";
|
4
|
+
import { Locales, getAssetUrl, useGetContentfulEntry, } from "../../hooks/contenful";
|
5
|
+
import { BannerContainer, Button, ButtonContainer, Content, LoadingContainer, Logo, Text, Title, } from "./MarketingBanner.styled";
|
6
|
+
const BANNER_CONTENT_TYPE = "banner";
|
7
|
+
export const MarketingBanner = (props) => {
|
8
|
+
const { id, environment, token, space, locale = Locales.enUS } = props;
|
9
|
+
const { fields, assets, isLoading, error } = useGetContentfulEntry(id, environment, BANNER_CONTENT_TYPE, token, space);
|
10
|
+
if (isLoading) {
|
11
|
+
return (_jsx(LoadingContainer, { children: _jsx(CircularProgress, {}) }));
|
12
|
+
}
|
13
|
+
// If there is no banner fields or the banner is not supposed to be shown, return null
|
14
|
+
if (!fields || !fields.showBanner[locale] || error) {
|
15
|
+
return null;
|
16
|
+
}
|
17
|
+
return (_jsxs(BannerContainer, { mobileBackground: getAssetUrl(assets, locale, fields.mobileBackground[locale]), fullSizeBackground: getAssetUrl(assets, locale, fields.fullSizeBackground[locale]), children: [_jsxs(Content, { children: [_jsx(Title, { variant: "h1", mobileTitleAlignment: fields.mobileTitleAlignment[locale]?.toLowerCase(), desktopTitleAlignment: fields.desktopTitleAlignment[locale]?.toLowerCase(), children: fields.title[locale] }), _jsx(Text, { desktopTextAlignment: fields.desktopTextAlignment[locale]?.toLowerCase(), mobileTextAlignment: fields.mobileTextAlignment[locale]?.toLowerCase(), children: fields.text[locale]
|
18
|
+
? documentToReactComponents(fields.text[locale])
|
19
|
+
: null }), fields.showButton[locale] &&
|
20
|
+
fields.buttonLink?.[locale] &&
|
21
|
+
fields.buttonsText?.[locale] ? (_jsx(ButtonContainer, { desktopAlignment: fields.desktopButtonAlignment[locale]?.toLowerCase(), mobileAlignment: fields.mobileButtonAlignment[locale]?.toLowerCase(), children: _jsx(Button, { href: fields.buttonLink[locale], variant: "contained", disableElevation: true, children: fields.buttonsText[locale] }) })) : null] }), fields.logo && fields.logo[locale] && (_jsx(Logo, { src: getAssetUrl(assets, locale, fields.logo[locale]), alt: "Banner logo" }))] }));
|
22
|
+
};
|
23
|
+
//# sourceMappingURL=MarketingBanner.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MarketingBanner.js","sourceRoot":"","sources":["../../../src/components/MarketingBanner/MarketingBanner.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { MarketingBanner } from "./MarketingBanner";
|
2
|
+
import type { StoryObj } from "@storybook/react";
|
3
|
+
declare const meta: {
|
4
|
+
title: string;
|
5
|
+
component: import("react").FC<import("./MarketingBanner.types").MarketingBannerProps>;
|
6
|
+
parameters: {
|
7
|
+
layout: string;
|
8
|
+
};
|
9
|
+
tags: string[];
|
10
|
+
};
|
11
|
+
type Story = StoryObj<typeof MarketingBanner>;
|
12
|
+
declare const Default: Story;
|
13
|
+
declare const SpanishLocale: Story;
|
14
|
+
declare const ChineseLocale: Story;
|
15
|
+
export { Default, SpanishLocale, ChineseLocale };
|
16
|
+
export default meta;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { MarketingBanner } from "./MarketingBanner";
|
2
|
+
import { Locales } from "../../hooks/contenful";
|
3
|
+
const meta = {
|
4
|
+
title: "Decentraland UI/MarketingBanner",
|
5
|
+
component: MarketingBanner,
|
6
|
+
parameters: {
|
7
|
+
layout: "fullscreen",
|
8
|
+
},
|
9
|
+
tags: ["autodocs"],
|
10
|
+
};
|
11
|
+
const Default = {
|
12
|
+
args: {
|
13
|
+
id: "2maJ4UuoqaYtbZxVGymsJo",
|
14
|
+
environment: "development",
|
15
|
+
token: "AATjg5ZJgxllQW8PBSQV4ZaY5wh9W_lQSKIiERHY-sc",
|
16
|
+
space: "ea2ybdmmn1kv",
|
17
|
+
},
|
18
|
+
};
|
19
|
+
const SpanishLocale = {
|
20
|
+
args: {
|
21
|
+
...Default.args,
|
22
|
+
locale: Locales.es,
|
23
|
+
},
|
24
|
+
};
|
25
|
+
const ChineseLocale = {
|
26
|
+
args: {
|
27
|
+
...Default.args,
|
28
|
+
locale: Locales.zh,
|
29
|
+
},
|
30
|
+
};
|
31
|
+
export { Default, SpanishLocale, ChineseLocale };
|
32
|
+
// eslint-disable-next-line import/no-default-export
|
33
|
+
export default meta;
|
34
|
+
//# sourceMappingURL=MarketingBanner.stories.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MarketingBanner.stories.js","sourceRoot":"","sources":["../../../src/components/MarketingBanner/MarketingBanner.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG/C,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,iCAAiC;IACxC,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;CACoB,CAAA;AAIxC,MAAM,OAAO,GAAU;IACrB,IAAI,EAAE;QACJ,EAAE,EAAE,wBAAwB;QAC5B,WAAW,EAAE,aAAa;QAC1B,KAAK,EAAE,6CAA6C;QACpD,KAAK,EAAE,cAAc;KACtB;CACF,CAAA;AAED,MAAM,aAAa,GAAU;IAC3B,IAAI,EAAE;QACJ,GAAG,OAAO,CAAC,IAAI;QACf,MAAM,EAAE,OAAO,CAAC,EAAE;KACnB;CACF,CAAA;AAED,MAAM,aAAa,GAAU;IAC3B,IAAI,EAAE;QACJ,GAAG,OAAO,CAAC,IAAI;QACf,MAAM,EAAE,OAAO,CAAC,EAAE;KACnB;CACF,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAA;AAChD,oDAAoD;AACpD,eAAe,IAAI,CAAA"}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import type { Property } from "csstype";
|
2
|
+
declare const LoadingContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
3
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
4
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
|
5
|
+
theme?: import("@emotion/react").Theme;
|
6
|
+
}, {}, {}>;
|
7
|
+
declare const BannerContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
8
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
9
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
|
10
|
+
theme?: import("@emotion/react").Theme;
|
11
|
+
} & {
|
12
|
+
mobileBackground: string;
|
13
|
+
fullSizeBackground: string;
|
14
|
+
}, {}, {}>;
|
15
|
+
declare const ContentWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
16
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
17
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
|
18
|
+
theme?: import("@emotion/react").Theme;
|
19
|
+
}, {}, {}>;
|
20
|
+
declare const Content: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
21
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
22
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
|
23
|
+
theme?: import("@emotion/react").Theme;
|
24
|
+
}, {}, {}>;
|
25
|
+
declare const Logo: import("@emotion/styled").StyledComponent<{
|
26
|
+
theme?: import("@emotion/react").Theme;
|
27
|
+
as?: import("react").ElementType;
|
28
|
+
}, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
29
|
+
declare const Title: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
|
30
|
+
ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
|
31
|
+
}, "typography" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxShadow" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "className" | "style" | "classes" | "children" | "sx" | "variant" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & {
|
32
|
+
theme?: import("@emotion/react").Theme;
|
33
|
+
} & {
|
34
|
+
mobileTitleAlignment?: Property.TextAlign;
|
35
|
+
desktopTitleAlignment?: Property.TextAlign;
|
36
|
+
}, {}, {}>;
|
37
|
+
declare const Text: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
38
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
39
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
|
40
|
+
theme?: import("@emotion/react").Theme;
|
41
|
+
} & {
|
42
|
+
mobileTextAlignment?: Property.TextAlign;
|
43
|
+
desktopTextAlignment?: Property.TextAlign;
|
44
|
+
}, {}, {}>;
|
45
|
+
declare const ButtonContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
46
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
47
|
+
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
|
48
|
+
theme?: import("@emotion/react").Theme;
|
49
|
+
} & {
|
50
|
+
mobileAlignment?: Property.TextAlign;
|
51
|
+
desktopAlignment?: Property.TextAlign;
|
52
|
+
}, {}, {}>;
|
53
|
+
declare const Button: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
54
|
+
ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
55
|
+
}, "disabled" | "color" | "className" | "style" | "classes" | "children" | "sx" | "variant" | "tabIndex" | "disableElevation" | "fullWidth" | "startIcon" | "endIcon" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "href" | "size"> & {
|
56
|
+
theme?: import("@emotion/react").Theme;
|
57
|
+
}, {}, {}>;
|
58
|
+
export { LoadingContainer, BannerContainer, Content, ContentWrapper, Logo, Title, Text, ButtonContainer, Button, };
|
@@ -0,0 +1,123 @@
|
|
1
|
+
import styled from "@emotion/styled";
|
2
|
+
import { Box, Button as MuiButton, Typography } from "@mui/material";
|
3
|
+
const convertAlignmentToFlex = (alignment) => {
|
4
|
+
switch (alignment) {
|
5
|
+
case "left":
|
6
|
+
return "flex-start";
|
7
|
+
case "center":
|
8
|
+
return "center";
|
9
|
+
case "right":
|
10
|
+
return "flex-end";
|
11
|
+
default:
|
12
|
+
return "flex-start";
|
13
|
+
}
|
14
|
+
};
|
15
|
+
const LoadingContainer = styled(Box)({
|
16
|
+
display: "flex",
|
17
|
+
justifyContent: "center",
|
18
|
+
alignItems: "center",
|
19
|
+
width: "100%",
|
20
|
+
});
|
21
|
+
const BannerContainer = styled(Box, {
|
22
|
+
shouldForwardProp: (prop) => prop !== "mobileBackground" && prop !== "fullSizeBackground",
|
23
|
+
})((props) => {
|
24
|
+
const { theme, mobileBackground, fullSizeBackground } = props;
|
25
|
+
return {
|
26
|
+
width: "100%",
|
27
|
+
overflow: "hidden",
|
28
|
+
display: "flex",
|
29
|
+
padding: "2rem",
|
30
|
+
justifyContent: "space-between",
|
31
|
+
flexDirection: "row",
|
32
|
+
backgroundImage: `url(${fullSizeBackground})`,
|
33
|
+
backgroundSize: "cover",
|
34
|
+
backgroundPosition: "center",
|
35
|
+
alignItems: "center",
|
36
|
+
[theme.breakpoints.down("sm")]: {
|
37
|
+
backgroundImage: `url(${mobileBackground})`,
|
38
|
+
flexDirection: "column-reverse",
|
39
|
+
},
|
40
|
+
};
|
41
|
+
});
|
42
|
+
const ContentWrapper = styled(Box)({
|
43
|
+
display: "flex",
|
44
|
+
flexDirection: "row",
|
45
|
+
flexGrow: 1,
|
46
|
+
marginRight: "20px",
|
47
|
+
});
|
48
|
+
const Content = styled(Box)((props) => {
|
49
|
+
const { theme } = props;
|
50
|
+
return {
|
51
|
+
display: "flex",
|
52
|
+
flexDirection: "column",
|
53
|
+
gap: "0.1rem",
|
54
|
+
[theme.breakpoints.down("sm")]: {
|
55
|
+
padding: "1rem",
|
56
|
+
},
|
57
|
+
};
|
58
|
+
});
|
59
|
+
const Logo = styled("img")((props) => {
|
60
|
+
const { theme } = props;
|
61
|
+
return {
|
62
|
+
flexShrink: 0,
|
63
|
+
maxWidth: "400px",
|
64
|
+
[theme.breakpoints.down("sm")]: {
|
65
|
+
maxWidth: "300px",
|
66
|
+
marginBottom: "1rem",
|
67
|
+
},
|
68
|
+
};
|
69
|
+
});
|
70
|
+
const Title = styled(Typography, {
|
71
|
+
shouldForwardProp: (prop) => prop !== "mobileTitleAlignment" && prop !== "desktopTitleAlignment",
|
72
|
+
})((props) => {
|
73
|
+
const { theme, mobileTitleAlignment, desktopTitleAlignment } = props;
|
74
|
+
return {
|
75
|
+
margin: 0,
|
76
|
+
color: "#fff",
|
77
|
+
textAlign: desktopTitleAlignment || "left",
|
78
|
+
fontSize: "28px",
|
79
|
+
textTransform: "uppercase",
|
80
|
+
fontWeight: 800,
|
81
|
+
[theme.breakpoints.down("sm")]: {
|
82
|
+
textAlign: mobileTitleAlignment || "left",
|
83
|
+
fontSize: "24px",
|
84
|
+
},
|
85
|
+
};
|
86
|
+
});
|
87
|
+
const Text = styled(Box, {
|
88
|
+
shouldForwardProp: (prop) => prop !== "mobileTextAlignment" && prop !== "desktopTextAlignment",
|
89
|
+
})((props) => {
|
90
|
+
const { theme, mobileTextAlignment, desktopTextAlignment } = props;
|
91
|
+
return {
|
92
|
+
color: "#fff",
|
93
|
+
textAlign: desktopTextAlignment || "left",
|
94
|
+
fontSize: "19px",
|
95
|
+
"& p": {
|
96
|
+
margin: 0,
|
97
|
+
padding: 0,
|
98
|
+
},
|
99
|
+
[theme.breakpoints.down("sm")]: {
|
100
|
+
textAlign: mobileTextAlignment || "left",
|
101
|
+
fontSize: "16px",
|
102
|
+
},
|
103
|
+
};
|
104
|
+
});
|
105
|
+
const ButtonContainer = styled(Box, {
|
106
|
+
shouldForwardProp: (prop) => prop !== "mobileAlignment" && prop !== "desktopAlignment",
|
107
|
+
})((props) => {
|
108
|
+
const { theme, mobileAlignment, desktopAlignment } = props;
|
109
|
+
return {
|
110
|
+
display: "flex",
|
111
|
+
marginTop: "1rem",
|
112
|
+
alignItems: convertAlignmentToFlex(desktopAlignment || "left"),
|
113
|
+
[theme.breakpoints.down("sm")]: {
|
114
|
+
alignItems: convertAlignmentToFlex(mobileAlignment || "left"),
|
115
|
+
},
|
116
|
+
};
|
117
|
+
});
|
118
|
+
const Button = styled(MuiButton)({
|
119
|
+
textTransform: "uppercase",
|
120
|
+
minWidth: "300px",
|
121
|
+
});
|
122
|
+
export { LoadingContainer, BannerContainer, Content, ContentWrapper, Logo, Title, Text, ButtonContainer, Button, };
|
123
|
+
//# sourceMappingURL=MarketingBanner.styled.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MarketingBanner.styled.js","sourceRoot":"","sources":["../../../src/components/MarketingBanner/MarketingBanner.styled.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { AlignmentFieldType, Locales, LocalizedField, SysAssetLink } from "hooks/contenful";
|
2
|
+
import type { Document } from "@contentful/rich-text-types";
|
3
|
+
type LowercasedAlignment = "left" | "center" | "right";
|
4
|
+
type IBannerFields = {
|
5
|
+
id: LocalizedField<string>;
|
6
|
+
showBanner: LocalizedField<boolean>;
|
7
|
+
title: LocalizedField<string>;
|
8
|
+
mobileTitleAlignment: LocalizedField<AlignmentFieldType>;
|
9
|
+
desktopTitleAlignment: LocalizedField<AlignmentFieldType>;
|
10
|
+
text: LocalizedField<Document>;
|
11
|
+
desktopTextAlignment: LocalizedField<AlignmentFieldType>;
|
12
|
+
mobileTextAlignment: LocalizedField<AlignmentFieldType>;
|
13
|
+
showButton: LocalizedField<boolean>;
|
14
|
+
buttonLink?: LocalizedField<string>;
|
15
|
+
buttonsText?: LocalizedField<string>;
|
16
|
+
desktopButtonAlignment: LocalizedField<AlignmentFieldType>;
|
17
|
+
mobileButtonAlignment: LocalizedField<AlignmentFieldType>;
|
18
|
+
fullSizeBackground: LocalizedField<SysAssetLink>;
|
19
|
+
mobileBackground: LocalizedField<SysAssetLink>;
|
20
|
+
logo?: LocalizedField<SysAssetLink>;
|
21
|
+
};
|
22
|
+
type MarketingBannerProps = {
|
23
|
+
id: string;
|
24
|
+
environment: string;
|
25
|
+
token: string;
|
26
|
+
space: string;
|
27
|
+
locale?: Locales;
|
28
|
+
};
|
29
|
+
export type { LowercasedAlignment, IBannerFields, MarketingBannerProps };
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MarketingBanner.types.js","sourceRoot":"","sources":["../../../src/components/MarketingBanner/MarketingBanner.types.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MarketingBanner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { ContentfulAsset, Locales, LocalizedField, LocalizedFieldType, SysAssetLink } from "./contentful.types";
|
2
|
+
declare const getAssetUrl: (assets: Record<string, ContentfulAsset>, locale: Locales, assetLink?: SysAssetLink) => string;
|
3
|
+
declare const useGetContentfulEntry: <T extends Record<string, LocalizedField<LocalizedFieldType>>>(id: string, environment: string, contentType: string, token: string, space: string) => {
|
4
|
+
fields: T | null;
|
5
|
+
assets: {};
|
6
|
+
isLoading: boolean;
|
7
|
+
error: string | null;
|
8
|
+
};
|
9
|
+
export { useGetContentfulEntry, getAssetUrl };
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import { useEffect, useState } from "react";
|
2
|
+
const getAssetUrl = (assets, locale, assetLink) => {
|
3
|
+
if (!assetLink)
|
4
|
+
return "";
|
5
|
+
const asset = assets[assetLink.sys.id];
|
6
|
+
return asset?.fields.file[locale]?.url
|
7
|
+
? `https:${asset.fields.file[locale].url}`
|
8
|
+
: "";
|
9
|
+
};
|
10
|
+
const useGetContentfulEntry = (id, environment, contentType, token, space) => {
|
11
|
+
const [fields, setFields] = useState(null);
|
12
|
+
const [assets, setAssets] = useState({});
|
13
|
+
const [isLoading, setIsLoading] = useState(true);
|
14
|
+
const [error, setError] = useState(null);
|
15
|
+
useEffect(() => {
|
16
|
+
const fetchData = async () => {
|
17
|
+
try {
|
18
|
+
const response = await fetch(`https://cdn.contentful.com/spaces/${space}/environments/${environment}/entries/?` +
|
19
|
+
new URLSearchParams({
|
20
|
+
"sys.id": id,
|
21
|
+
content_type: contentType,
|
22
|
+
locale: "*",
|
23
|
+
}), {
|
24
|
+
headers: {
|
25
|
+
Authorization: `Bearer ${token}`,
|
26
|
+
},
|
27
|
+
});
|
28
|
+
if (!response.ok) {
|
29
|
+
throw new Error("Failed to fetch entity data");
|
30
|
+
}
|
31
|
+
const data = await response.json();
|
32
|
+
if (!data.items || data.items.length === 0) {
|
33
|
+
throw new Error("No entity found with the specified ID");
|
34
|
+
}
|
35
|
+
const assetsMap = data.includes.Asset.reduce((acc, asset) => {
|
36
|
+
acc[asset.sys.id] = asset;
|
37
|
+
return acc;
|
38
|
+
}, {});
|
39
|
+
setAssets(assetsMap);
|
40
|
+
setFields(data.items[0].fields);
|
41
|
+
}
|
42
|
+
catch (err) {
|
43
|
+
setError(err instanceof Error ? err.message : "An error occurred");
|
44
|
+
}
|
45
|
+
finally {
|
46
|
+
setIsLoading(false);
|
47
|
+
}
|
48
|
+
};
|
49
|
+
fetchData();
|
50
|
+
}, [id, environment, token, space]);
|
51
|
+
return { fields, assets, isLoading, error };
|
52
|
+
};
|
53
|
+
export { useGetContentfulEntry, getAssetUrl };
|
54
|
+
//# sourceMappingURL=contentful.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"contentful.js","sourceRoot":"","sources":["../../../src/hooks/contenful/contentful.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import type { Document } from "@contentful/rich-text-types";
|
2
|
+
declare enum ContentfulLocale {
|
3
|
+
enUS = "en-US",
|
4
|
+
es = "es",
|
5
|
+
zh = "zh"
|
6
|
+
}
|
7
|
+
type LocalizedField<T> = {
|
8
|
+
[key in ContentfulLocale]: T;
|
9
|
+
};
|
10
|
+
type SysAssetLink = {
|
11
|
+
sys: {
|
12
|
+
type: "Link";
|
13
|
+
linkType: "Asset";
|
14
|
+
id: string;
|
15
|
+
};
|
16
|
+
};
|
17
|
+
type ContentfulAsset = {
|
18
|
+
sys: {
|
19
|
+
id: string;
|
20
|
+
type: "Asset";
|
21
|
+
};
|
22
|
+
fields: {
|
23
|
+
title: LocalizedField<string>;
|
24
|
+
description: LocalizedField<string>;
|
25
|
+
file: LocalizedField<{
|
26
|
+
url: string;
|
27
|
+
details: {
|
28
|
+
size: number;
|
29
|
+
image?: {
|
30
|
+
width: number;
|
31
|
+
height: number;
|
32
|
+
};
|
33
|
+
};
|
34
|
+
fileName: string;
|
35
|
+
contentType: string;
|
36
|
+
}>;
|
37
|
+
};
|
38
|
+
};
|
39
|
+
type AlignmentFieldType = "Left" | "Center" | "Right";
|
40
|
+
type LocalizedFieldType = string | boolean | Document | SysAssetLink | AlignmentFieldType;
|
41
|
+
type ContentfulResponse<T extends Record<string, LocalizedField<LocalizedFieldType>>> = {
|
42
|
+
items: Array<{
|
43
|
+
fields: T;
|
44
|
+
sys: {
|
45
|
+
id: string;
|
46
|
+
type: "Entry";
|
47
|
+
};
|
48
|
+
}>;
|
49
|
+
includes: {
|
50
|
+
Asset: ContentfulAsset[];
|
51
|
+
};
|
52
|
+
};
|
53
|
+
export { ContentfulLocale as Locales, LocalizedField, SysAssetLink, ContentfulAsset, AlignmentFieldType, LocalizedFieldType, ContentfulResponse, };
|
@@ -0,0 +1,8 @@
|
|
1
|
+
var ContentfulLocale;
|
2
|
+
(function (ContentfulLocale) {
|
3
|
+
ContentfulLocale["enUS"] = "en-US";
|
4
|
+
ContentfulLocale["es"] = "es";
|
5
|
+
ContentfulLocale["zh"] = "zh";
|
6
|
+
})(ContentfulLocale || (ContentfulLocale = {}));
|
7
|
+
export { ContentfulLocale as Locales, };
|
8
|
+
//# sourceMappingURL=contentful.types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"contentful.types.js","sourceRoot":"","sources":["../../../src/hooks/contenful/contentful.types.ts"],"names":[],"mappings":"AAEA,IAAK,gBAIJ;AAJD,WAAK,gBAAgB;IACnB,kCAAc,CAAA;IACd,6BAAS,CAAA;IACT,6BAAS,CAAA;AACX,CAAC,EAJI,gBAAgB,KAAhB,gBAAgB,QAIpB;AA4DD,OAAO,EACL,gBAAgB,IAAI,OAAO,GAO5B,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/contenful/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "decentraland-ui2",
|
3
|
-
"version": "0.8.
|
3
|
+
"version": "0.8.8-12715203702.commit-365ad79",
|
4
4
|
"description": "Decentraland's UI components and styles",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -37,6 +37,7 @@
|
|
37
37
|
},
|
38
38
|
"homepage": "https://github.com/decentraland/ui2#readme",
|
39
39
|
"dependencies": {
|
40
|
+
"@contentful/rich-text-react-renderer": "^16.0.1",
|
40
41
|
"@dcl/schemas": "^13.9.0",
|
41
42
|
"@dcl/ui-env": "^1.5.1",
|
42
43
|
"@emotion/react": "^11.11.4",
|
@@ -55,6 +56,7 @@
|
|
55
56
|
"@babel/preset-env": "^7.24.7",
|
56
57
|
"@babel/preset-react": "^7.24.7",
|
57
58
|
"@babel/preset-typescript": "^7.24.7",
|
59
|
+
"@contentful/rich-text-types": "^17.0.0",
|
58
60
|
"@dcl/eslint-config": "^2.2.1",
|
59
61
|
"@storybook/addon-docs": "^7.6.20",
|
60
62
|
"@storybook/addon-essentials": "^7.6.20",
|
@@ -90,5 +92,5 @@
|
|
90
92
|
"files": [
|
91
93
|
"dist"
|
92
94
|
],
|
93
|
-
"commit": "
|
95
|
+
"commit": "365ad798082928e08bb83ae2b95fa380a8805e57"
|
94
96
|
}
|