@se-studio/contentful-rest-api 1.18.0 → 1.18.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @se-studio/contentful-rest-api
|
|
2
2
|
|
|
3
|
+
## 1.18.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- bfb7eb4: Copy banner CMS `ctaText` onto `ctaLink.text` (and fill external link `name` when empty) so site UIs that render `ctaLink.text` get the editor CTA label.
|
|
8
|
+
- Updated dependencies [bfb7eb4]
|
|
9
|
+
- @se-studio/core-data-types@1.7.1
|
|
10
|
+
|
|
3
11
|
## 1.18.0
|
|
4
12
|
|
|
5
13
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,OAAO,
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,OAAO,EAGR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,WAAW,CAAC;AA0BjE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC7D,OAAO,CAqDT"}
|
|
@@ -7,6 +7,19 @@ function normalizePlacement(raw) {
|
|
|
7
7
|
}
|
|
8
8
|
return raw;
|
|
9
9
|
}
|
|
10
|
+
function bannerCtaLabel(ctaText) {
|
|
11
|
+
return typeof ctaText === 'string' ? ctaText.trim() : '';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Copy CMS CTA Text onto the resolved link so site UIs can use `ctaLink.text`.
|
|
15
|
+
* Preserves an existing link `name` (e.g. page title on internal targets).
|
|
16
|
+
*/
|
|
17
|
+
function applyBannerCtaText(link, ctaText) {
|
|
18
|
+
const label = bannerCtaLabel(ctaText);
|
|
19
|
+
if (!label)
|
|
20
|
+
return link;
|
|
21
|
+
return { ...link, text: label, name: link.name || label };
|
|
22
|
+
}
|
|
10
23
|
/**
|
|
11
24
|
* Converts a Contentful banner entry to an IBanner object
|
|
12
25
|
*/
|
|
@@ -16,23 +29,30 @@ export function baseBannerConverter(context, entry) {
|
|
|
16
29
|
throw new Error(`Invalid content type: expected "banner", got "${sys.contentType.sys.id}"`);
|
|
17
30
|
}
|
|
18
31
|
const id = sys.id;
|
|
19
|
-
const { ctaInternalLink: rawCtaInternalLink, ctaExternalLink: rawCtaExternalLink, showOn: rawShowOn, hideOn: rawHideOn, theme, dismissType, placement: rawPlacement, ...simpleFields } = fields;
|
|
32
|
+
const { ctaText, ctaInternalLink: rawCtaInternalLink, ctaExternalLink: rawCtaExternalLink, showOn: rawShowOn, hideOn: rawHideOn, theme, dismissType, placement: rawPlacement, ...simpleFields } = fields;
|
|
20
33
|
const ctaInternalLink = rawCtaInternalLink
|
|
21
34
|
? resolveLink(context, sys.id, rawCtaInternalLink)
|
|
22
35
|
: undefined;
|
|
36
|
+
// Labels are stamped only via applyBannerCtaText (single path for internal + external).
|
|
23
37
|
const ctaExternalLink = rawCtaExternalLink
|
|
24
38
|
? {
|
|
25
39
|
type: 'External link',
|
|
40
|
+
id: sys.id,
|
|
41
|
+
name: '',
|
|
42
|
+
text: null,
|
|
26
43
|
href: rawCtaExternalLink,
|
|
27
44
|
}
|
|
28
45
|
: undefined;
|
|
46
|
+
const rawCtaLink = ctaInternalLink ?? ctaExternalLink;
|
|
47
|
+
const ctaLink = rawCtaLink ? applyBannerCtaText(rawCtaLink, ctaText) : undefined;
|
|
29
48
|
const showOn = rawShowOn ? lookupEntries(context, rawShowOn) : undefined;
|
|
30
49
|
const hideOn = rawHideOn ? lookupEntries(context, rawHideOn) : undefined;
|
|
31
50
|
return {
|
|
32
51
|
type: 'Banner',
|
|
33
52
|
...simpleFields,
|
|
34
53
|
id,
|
|
35
|
-
|
|
54
|
+
ctaText: ctaText ?? null,
|
|
55
|
+
ctaLink,
|
|
36
56
|
showOn,
|
|
37
57
|
hideOn,
|
|
38
58
|
theme: theme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/converters/banner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-rest-api",
|
|
3
|
-
"version": "1.18.
|
|
3
|
+
"version": "1.18.1",
|
|
4
4
|
"description": "Type-safe Contentful REST API client with caching and rate limiting for Next.js applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@contentful/rich-text-types": "^17.2.7",
|
|
62
62
|
"contentful": "^11.12.7",
|
|
63
63
|
"server-only": "0.0.1",
|
|
64
|
-
"@se-studio/core-data-types": "1.7.
|
|
64
|
+
"@se-studio/core-data-types": "1.7.1"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"next": ">=15.5.0 <16"
|