@faststore/core 2.2.68 → 2.2.70

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.
Files changed (97) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +52 -55
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/routes-manifest.json +1 -1
  14. package/.next/server/chunks/350.js +87 -0
  15. package/.next/server/chunks/74.js +741 -161
  16. package/.next/server/chunks/829.js +1 -1
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/pages/404.js +7 -0
  19. package/.next/server/pages/404.js.nft.json +1 -1
  20. package/.next/server/pages/500.js +7 -0
  21. package/.next/server/pages/500.js.nft.json +1 -1
  22. package/.next/server/pages/[...slug].js +7 -7
  23. package/.next/server/pages/[...slug].js.nft.json +1 -1
  24. package/.next/server/pages/[slug]/p.js +5 -5
  25. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  26. package/.next/server/pages/_app.js.nft.json +1 -1
  27. package/.next/server/pages/_error.js.nft.json +1 -1
  28. package/.next/server/pages/account.js +7 -0
  29. package/.next/server/pages/account.js.nft.json +1 -1
  30. package/.next/server/pages/api/graphql.js +1 -1
  31. package/.next/server/pages/checkout.js +7 -0
  32. package/.next/server/pages/checkout.js.nft.json +1 -1
  33. package/.next/server/pages/en-US/404.html +2 -2
  34. package/.next/server/pages/en-US/500.html +2 -2
  35. package/.next/server/pages/en-US/account.html +2 -2
  36. package/.next/server/pages/en-US/checkout.html +2 -2
  37. package/.next/server/pages/en-US/login.html +2 -2
  38. package/.next/server/pages/en-US/s.html +2 -2
  39. package/.next/server/pages/en-US.html +2 -2
  40. package/.next/server/pages/index.js +6 -6
  41. package/.next/server/pages/index.js.nft.json +1 -1
  42. package/.next/server/pages/login.js +7 -0
  43. package/.next/server/pages/login.js.nft.json +1 -1
  44. package/.next/server/pages/s.js +7 -0
  45. package/.next/server/pages/s.js.nft.json +1 -1
  46. package/.next/server/pages-manifest.json +2 -2
  47. package/.next/static/9t0jxL0Q7hZ_ItlxJLOtn/_buildManifest.js +1 -0
  48. package/.next/static/chunks/464-bc1301cb64b71518.js +1 -0
  49. package/.next/static/chunks/557-4f8a963d7e07e582.js +1 -0
  50. package/.next/static/chunks/pages/{404-5e6c01505839ca4e.js → 404-8aa1a5d5e6a66a9a.js} +1 -1
  51. package/.next/static/chunks/pages/{500-92239cdd00a581dd.js → 500-36ea8ba52ee65fe2.js} +1 -1
  52. package/.next/static/chunks/pages/[...slug]-29c2c581a7246de4.js +1 -0
  53. package/.next/static/chunks/pages/[slug]/p-d4a3fd33abda8f62.js +1 -0
  54. package/.next/static/chunks/pages/{account-2d15d4e38b855872.js → account-3741291b1e89c2e7.js} +1 -1
  55. package/.next/static/chunks/pages/{checkout-e34b1a2945839749.js → checkout-95066de007bdbbdb.js} +1 -1
  56. package/.next/static/chunks/pages/index-bbd90798e45dc0ff.js +1 -0
  57. package/.next/static/chunks/pages/{login-1b197c0b0d5ba457.js → login-f0d8dfab2f856c25.js} +1 -1
  58. package/.next/static/chunks/pages/{s-ed126d7e39eec25b.js → s-e9b663c3e4f84b0a.js} +1 -1
  59. package/.next/static/chunks/{webpack-6c4b31200fed6646.js → webpack-776cfd646b505dc5.js} +1 -1
  60. package/.next/static/css/0c844be3b8585e70.css +1 -0
  61. package/.next/static/css/557d58510041152c.css +1 -0
  62. package/.next/static/css/a6bcc59f42b42f36.css +1 -0
  63. package/.next/static/css/{4ee95588f27a8b6b.css → ecdecb8d639a8311.css} +1 -1
  64. package/.next/trace +82 -82
  65. package/.turbo/turbo-build.log +14 -13
  66. package/.turbo/turbo-test.log +10 -10
  67. package/package.json +9 -9
  68. package/src/components/cms/GlobalSections.tsx +1 -1
  69. package/src/components/navigation/Navbar/Navbar.tsx +10 -10
  70. package/src/components/navigation/NavbarLinks/NavbarLinks.tsx +3 -5
  71. package/src/components/navigation/NavbarSlider/NavbarSlider.tsx +8 -7
  72. package/src/components/sections/BannerNewsletter/BannerNewsletter.tsx +5 -2
  73. package/src/components/sections/Navbar/DefaultComponents.ts +27 -0
  74. package/src/components/sections/Navbar/OverriddenDefaultNavbar.ts +12 -0
  75. package/src/components/sections/Newsletter/DefaultComponents.ts +25 -0
  76. package/src/components/sections/Newsletter/Newsletter.tsx +1 -2
  77. package/src/components/sections/Newsletter/OverriddenDefaultNewsletter.ts +12 -0
  78. package/src/components/templates/LandingPage/LandingPage.tsx +3 -3
  79. package/src/components/ui/Newsletter/Newsletter.tsx +15 -13
  80. package/src/components/ui/Newsletter/index.ts +3 -0
  81. package/src/pages/index.tsx +2 -2
  82. package/src/sdk/overrides/sections.tsx +8 -0
  83. package/src/typings/overrides.ts +2 -0
  84. package/.next/server/chunks/796.js +0 -554
  85. package/.next/static/UqOs8JLqk-fWN0wuNR3He/_buildManifest.js +0 -1
  86. package/.next/static/chunks/762-1e3db91e2888dca7.js +0 -1
  87. package/.next/static/chunks/846-d7c6a8d1d102ccf3.js +0 -1
  88. package/.next/static/chunks/897-b07932d813bb7dac.js +0 -1
  89. package/.next/static/chunks/pages/[...slug]-36dce5cc96853b94.js +0 -1
  90. package/.next/static/chunks/pages/[slug]/p-039e11d837033561.js +0 -1
  91. package/.next/static/chunks/pages/index-a5448a22526e3ea8.js +0 -1
  92. package/.next/static/css/527e334fa69cf40a.css +0 -1
  93. package/.next/static/css/563a68087e4de59c.css +0 -1
  94. package/.next/static/css/c33c62a3d0c77436.css +0 -1
  95. package/src/components/sections/Navbar/Overrides.tsx +0 -60
  96. package/src/components/sections/Newsletter/Overrides.tsx +0 -58
  97. /package/.next/static/{UqOs8JLqk-fWN0wuNR3He → 9t0jxL0Q7hZ_ItlxJLOtn}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  $ yarn partytown & yarn generate && next build
2
- $ faststore generate-graphql -c
3
2
  $ partytown copylib ./public/~partytown
3
+ $ faststore generate-graphql -c
4
4
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
5
5
  success - GraphQL schema, types, and optimizations successfully generated 🎉
6
6
  warn - You have enabled experimental feature (scrollRestoration) in next.config.js.
@@ -38,27 +38,28 @@ info - Generating static pages (7/7)
38
38
  info - Finalizing page optimization...
39
39
 
40
40
  Route (pages) Size First Load JS
41
- ┌ ● / 1.08 kB 142 kB
41
+ ┌ ● / 2.36 kB 142 kB
42
+ ├ └ css/ecdecb8d639a8311.css 5.48 kB
42
43
  ├ /_app 0 B 83.7 kB
43
- ├ ● /[...slug] 3.29 kB 145 kB
44
- ├ └ css/527e334fa69cf40a.css 1.85 kB
45
- ├ ● /[slug]/p 5.89 kB 141 kB
46
- ├ └ css/c33c62a3d0c77436.css 4.48 kB
47
- ├ ○ /404 1.03 kB 136 kB
48
- ├ ● /500 1.05 kB 136 kB
49
- ├ ● /account 676 B 136 kB
44
+ ├ ● /[...slug] 4.43 kB 144 kB
45
+ ├ └ css/0c844be3b8585e70.css 5.9 kB
46
+ ├ ● /[slug]/p 1.74 kB 141 kB
47
+ ├ └ css/a6bcc59f42b42f36.css 2.39 kB
48
+ ├ ○ /404 1.03 kB 141 kB
49
+ ├ ● /500 1.05 kB 141 kB
50
+ ├ ● /account 674 B 140 kB
50
51
  ├ λ /api/graphql 0 B 83.7 kB
51
52
  ├ λ /api/health/live 0 B 83.7 kB
52
53
  ├ λ /api/health/ready 0 B 83.7 kB
53
54
  ├ λ /api/preview 0 B 83.7 kB
54
- ├ ● /checkout 661 B 136 kB
55
- ├ ● /login 983 B 136 kB
56
- └ ● /s 2.36 kB 138 kB
55
+ ├ ● /checkout 660 B 140 kB
56
+ ├ ● /login 984 B 141 kB
57
+ └ ● /s 2.36 kB 142 kB
57
58
  + First Load JS shared by all 86.8 kB
58
59
  ├ chunks/framework-dfd14d7ce6600b03.js 45.3 kB
59
60
  ├ chunks/main-e4e873ee741162eb.js 24.2 kB
60
61
  ├ chunks/pages/_app-30b9666307e4b3b1.js 12.1 kB
61
- ├ chunks/webpack-6c4b31200fed6646.js 2.22 kB
62
+ ├ chunks/webpack-776cfd646b505dc5.js 2.22 kB
62
63
  └ css/5d1f64b61ea581f4.css 3.05 kB
63
64
 
64
65
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
@@ -1,23 +1,23 @@
1
1
  $ jest
2
- PASS test/server/index.test.ts (21.676 s)
2
+ PASS test/server/index.test.ts (21.452 s)
3
3
  FastStore GraphQL Layer
4
4
  @faststore/api
5
- ✓ should return a valid GraphQL schema (8 ms)
5
+ ✓ should return a valid GraphQL schema (7 ms)
6
6
  ✓ should return a valid GraphQL schema contain all expected types (4 ms)
7
- ✓ should return a valid GraphQL schema contain all expected queries (2 ms)
8
- ✓ should return a valid GraphQL schema contain all expected mutations
7
+ ✓ should return a valid GraphQL schema contain all expected queries (1 ms)
8
+ ✓ should return a valid GraphQL schema contain all expected mutations (1 ms)
9
9
  VTEX API Extension
10
- ✓ getTypeDefsFromFolder function should return an Array (8 ms)
10
+ ✓ getTypeDefsFromFolder function should return an Array (6 ms)
11
11
  Third Party API Extension
12
- ✓ getTypeDefsFromFolder function should return an Array (17 ms)
12
+ ✓ getTypeDefsFromFolder function should return an Array (10 ms)
13
13
  Final Schema after merging
14
- ✓ should return a valid merged GraphQL schema (54 ms)
14
+ ✓ should return a valid merged GraphQL schema (32 ms)
15
15
  Envelop
16
- ✓ should exist with its plugins (71 ms)
17
- ✓ should handle options and execute (585 ms)
16
+ ✓ should exist with its plugins (26 ms)
17
+ ✓ should handle options and execute (320 ms)
18
18
 
19
19
  Test Suites: 1 passed, 1 total
20
20
  Tests: 9 passed, 9 total
21
21
  Snapshots: 0 total
22
- Time: 21.77 s
22
+ Time: 21.62 s
23
23
  Ran all test suites.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "2.2.68",
3
+ "version": "2.2.70",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -37,11 +37,11 @@
37
37
  "@envelop/graphql-jit": "^1.1.1",
38
38
  "@envelop/parser-cache": "^2.2.0",
39
39
  "@envelop/validation-cache": "^2.2.0",
40
- "@faststore/api": "^2.2.56",
41
- "@faststore/components": "^2.2.67",
42
- "@faststore/graphql-utils": "^2.2.56",
43
- "@faststore/sdk": "^2.2.61",
44
- "@faststore/ui": "^2.2.67",
40
+ "@faststore/api": "^2.2.69",
41
+ "@faststore/components": "^2.2.69",
42
+ "@faststore/graphql-utils": "^2.2.69",
43
+ "@faststore/sdk": "^2.2.69",
44
+ "@faststore/ui": "^2.2.69",
45
45
  "@graphql-codegen/cli": "^3.3.1",
46
46
  "@graphql-codegen/typescript": "^3.0.4",
47
47
  "@graphql-codegen/typescript-operations": "^3.0.4",
@@ -78,8 +78,8 @@
78
78
  "devDependencies": {
79
79
  "@cypress/code-coverage": "^3.12.1",
80
80
  "@envelop/testing": "^6.0.0",
81
- "@faststore/cli": "^2.2.56",
82
- "@faststore/eslint-config": "^2.2.56",
81
+ "@faststore/cli": "^2.2.69",
82
+ "@faststore/eslint-config": "^2.2.69",
83
83
  "@faststore/lighthouse": "^1.12.32",
84
84
  "@lhci/cli": "^0.9.0",
85
85
  "@testing-library/cypress": "^10.0.1",
@@ -123,5 +123,5 @@
123
123
  "node": "18.19.0",
124
124
  "yarn": "1.19.1"
125
125
  },
126
- "gitHead": "7f7a80acfe28da4f8466d5513411c3a01722e959"
126
+ "gitHead": "f3b56c76db2f97cc9d0e6b81839b4eda151044e8"
127
127
  }
@@ -8,9 +8,9 @@ import Toast from 'src/components/common/Toast'
8
8
  import RenderSections from './RenderSections'
9
9
 
10
10
  import { OverriddenDefaultAlert as Alert } from 'src/components/sections/Alert/OverriddenDefaultAlert'
11
+ import { OverriddenDefaultNavbar as Navbar } from 'src/components/sections/Navbar/OverriddenDefaultNavbar'
11
12
  import { OverriddenDefaultRegionBar as RegionBar } from 'src/components/sections/RegionBar/OverriddenDefaultRegionBar'
12
13
  import Footer from 'src/components/sections/Footer'
13
- import Navbar from 'src/components/sections/Navbar'
14
14
 
15
15
  const RegionModal = lazy(() => import('src/components/region/RegionModal'))
16
16
  const CartSidebar = lazy(() => import('src/components/cart/CartSidebar'))
@@ -12,17 +12,10 @@ import CartToggle from 'src/components/cart/CartToggle'
12
12
  import Logo from 'src/components/ui/Logo'
13
13
  import Link from 'src/components/ui/Link'
14
14
  import { ButtonSignIn } from 'src/components/ui/Button'
15
+ import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
15
16
 
16
17
  import type { NavbarProps as SectionNavbarProps } from '../../sections/Navbar'
17
18
 
18
- import {
19
- Navbar as NavbarWrapper,
20
- NavbarHeader,
21
- NavbarRow,
22
- NavbarButtons,
23
- IconButton,
24
- } from 'src/components/sections/Navbar/Overrides'
25
-
26
19
  export interface NavbarProps {
27
20
  /**
28
21
  * Logo props.
@@ -75,9 +68,16 @@ function Navbar({
75
68
  home: { label: homeLabel },
76
69
  signIn: { button: signInButton },
77
70
  menu: {
78
- icon: { icon: menuIcon, alt: menuIconAlt = IconButton.props['aria-label'] },
71
+ icon: { icon: menuIcon, alt: menuIconAlt },
79
72
  },
80
73
  }: NavbarProps) {
74
+ const {
75
+ Navbar: NavbarWrapper,
76
+ NavbarHeader,
77
+ NavbarRow,
78
+ NavbarButtons,
79
+ IconButton,
80
+ } = useOverrideComponents<'Navbar'>()
81
81
  const scrollDirection = useScrollDirection()
82
82
  const { openNavbar, navbar: displayNavbar } = useUI()
83
83
  const searchMobileRef = useRef<SearchInputRef>(null)
@@ -107,7 +107,7 @@ function Navbar({
107
107
  onClick={openNavbar}
108
108
  icon={<UIIcon name={menuIcon} width={32} height={32} />}
109
109
  {...IconButton.props}
110
- aria-label={menuIconAlt}
110
+ aria-label={menuIconAlt ?? IconButton.props['aria-label']}
111
111
  />
112
112
  <Link
113
113
  data-fs-navbar-logo
@@ -8,11 +8,7 @@ import RegionButton from 'src/components/region/RegionButton'
8
8
  import type { NavbarProps } from 'src/components/navigation/Navbar'
9
9
 
10
10
  import { mark } from 'src/sdk/tests/mark'
11
-
12
- import {
13
- NavbarLinks as NavbarLinksWrapper,
14
- NavbarLinksList,
15
- } from 'src/components/sections/Navbar/Overrides'
11
+ import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
16
12
 
17
13
  interface NavbarLinksProps extends UINavbarLinksProps {
18
14
  links: NavbarProps['links']
@@ -29,6 +25,8 @@ function NavbarLinks({
29
25
  region: { icon: regionIcon, label: regionLabel, shouldDisplayRegion },
30
26
  ...otherProps
31
27
  }: NavbarLinksProps) {
28
+ const { NavbarLinks: NavbarLinksWrapper, NavbarLinksList } =
29
+ useOverrideComponents<'Navbar'>()
32
30
  return (
33
31
  <NavbarLinksWrapper.Component {...otherProps} {...NavbarLinksWrapper.props}>
34
32
  <div data-fs-navbar-links-wrapper data-fs-content="navbar">
@@ -10,13 +10,7 @@ import { mark } from 'src/sdk/tests/mark'
10
10
  import type { NavbarProps } from '../Navbar'
11
11
 
12
12
  import styles from './section.module.scss'
13
-
14
- import {
15
- NavbarSlider as NavbarSliderWrapper,
16
- NavbarSliderHeader,
17
- NavbarSliderContent,
18
- NavbarSliderFooter,
19
- } from 'src/components/sections/Navbar/Overrides'
13
+ import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
20
14
 
21
15
  interface NavbarSliderProps {
22
16
  logo: NavbarProps['logo']
@@ -33,6 +27,13 @@ function NavbarSlider({
33
27
  home: { label: homeLabel },
34
28
  signIn: { button: signInButton },
35
29
  }: NavbarSliderProps) {
30
+ const {
31
+ NavbarSlider: NavbarSliderWrapper,
32
+ NavbarSliderHeader,
33
+ NavbarSliderContent,
34
+ NavbarSliderFooter,
35
+ } = useOverrideComponents<'Navbar'>()
36
+
36
37
  const { closeNavbar } = useUI()
37
38
  const { fade, fadeOut } = useFadeEffect()
38
39
 
@@ -1,6 +1,9 @@
1
- import { BannerTextProps } from 'src/components/sections/BannerText'
2
1
  import { OverriddenDefaultBannerText as BannerText } from 'src/components/sections/BannerText/OverriddenDefaultBannerText'
3
- import Newsletter, { NewsletterProps } from 'src/components/sections/Newsletter'
2
+ import type { BannerTextProps } from 'src/components/sections/BannerText'
3
+
4
+ import { OverriddenDefaultNewsletter as Newsletter } from 'src/components/sections/Newsletter/OverriddenDefaultNewsletter'
5
+ import type { NewsletterProps } from 'src/components/sections/Newsletter'
6
+
4
7
  import Section from '../Section'
5
8
  import styles from './section.module.scss'
6
9
 
@@ -0,0 +1,27 @@
1
+ import {
2
+ Navbar as UINavbar,
3
+ NavbarLinks as UINavbarLinks,
4
+ NavbarLinksList as UINavbarLinksList,
5
+ NavbarSlider as UINavbarSlider,
6
+ NavbarSliderHeader as UINavbarSliderHeader,
7
+ NavbarSliderContent as UINavbarSliderContent,
8
+ NavbarSliderFooter as UINavbarSliderFooter,
9
+ NavbarHeader as UINavbarHeader,
10
+ NavbarRow as UINavbarRow,
11
+ NavbarButtons as UINavbarButtons,
12
+ IconButton as UIIconButton,
13
+ } from '@faststore/ui'
14
+
15
+ export const NavbarDefaultComponents = {
16
+ Navbar: UINavbar,
17
+ NavbarLinks: UINavbarLinks,
18
+ NavbarLinksList: UINavbarLinksList,
19
+ NavbarSlider: UINavbarSlider,
20
+ NavbarSliderHeader: UINavbarSliderHeader,
21
+ NavbarSliderContent: UINavbarSliderContent,
22
+ NavbarSliderFooter: UINavbarSliderFooter,
23
+ NavbarHeader: UINavbarHeader,
24
+ NavbarRow: UINavbarRow,
25
+ NavbarButtons: UINavbarButtons,
26
+ IconButton: UIIconButton,
27
+ } as const
@@ -0,0 +1,12 @@
1
+ import { override } from 'src/customizations/src/components/overrides/Navbar'
2
+ import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
+ import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
4
+
5
+ /**
6
+ * This component exists to support overrides 1.0
7
+ *
8
+ * This allows users to override the default Navbar section present in the Headless CMS
9
+ */
10
+ export const OverriddenDefaultNavbar = getOverriddenSection(
11
+ override as SectionOverrideDefinition<'Navbar'>
12
+ )
@@ -0,0 +1,25 @@
1
+ import {
2
+ Button as UIButton,
3
+ InputField as UIInputField,
4
+ Icon as UIIcon,
5
+ Newsletter as UINewsletter,
6
+ NewsletterContent as UINewsletterContent,
7
+ NewsletterForm as UINewsletterForm,
8
+ NewsletterHeader as UINewsletterHeader,
9
+ } from '@faststore/ui'
10
+
11
+ import { NewsletterAddendum as UINewsletterAddendum } from 'src/components/ui/Newsletter'
12
+
13
+ export const NewsletterDefaultComponents = {
14
+ Button: UIButton,
15
+ HeaderIcon: UIIcon,
16
+ InputFieldEmail: UIInputField,
17
+ InputFieldName: UIInputField,
18
+ Newsletter: UINewsletter,
19
+ NewsletterAddendum: UINewsletterAddendum,
20
+ NewsletterContent: UINewsletterContent,
21
+ NewsletterForm: UINewsletterForm,
22
+ NewsletterHeader: UINewsletterHeader,
23
+ ToastIconError: UIIcon,
24
+ ToastIconSuccess: UIIcon,
25
+ } as const
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  NewsletterProps as UINewsletterProps,
3
3
  NewsletterAddendumProps as UINewsletterAddendumProps,
4
- NewsletterFormProps as UINewsletterFormProps,
5
4
  NewsletterHeaderProps as UINewsletterHeaderProps,
6
5
  } from '@faststore/ui'
7
6
 
@@ -74,7 +73,7 @@ export interface NewsletterProps {
74
73
  toastSubscribeError?: SubscribeMessage
75
74
  }
76
75
 
77
- const Newsletter = function Newsletter({
76
+ function Newsletter({
78
77
  icon,
79
78
  title,
80
79
  description,
@@ -0,0 +1,12 @@
1
+ import { override } from 'src/customizations/src/components/overrides/Newsletter'
2
+ import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
+ import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
4
+
5
+ /**
6
+ * This component exists to support overrides 1.0
7
+ *
8
+ * This allows users to override the default Newsletter section present in the Headless CMS
9
+ */
10
+ export const OverriddenDefaultNewsletter = getOverriddenSection(
11
+ override as SectionOverrideDefinition<'Newsletter'>
12
+ )
@@ -4,12 +4,12 @@ import type { Locator } from '@vtex/client-cms'
4
4
 
5
5
  import MissingContentError from 'src/sdk/error/MissingContentError/MissingContentError'
6
6
  import RenderSections from 'src/components/cms/RenderSections'
7
+ import { OverriddenDefaultBannerText as BannerText } from 'src/components/sections/BannerText/OverriddenDefaultBannerText'
7
8
  import { OverriddenDefaultHero as Hero } from 'src/components/sections/Hero/OverriddenDefaultHero'
8
- import Incentives from 'src/components/sections/Incentives'
9
+ import { OverriddenDefaultNewsletter as Newsletter } from 'src/components/sections/Newsletter/OverriddenDefaultNewsletter'
9
10
  import { OverriddenDefaultProductShelf as ProductShelf } from 'src/components/sections/ProductShelf/OverriddenDefaultProductShelf'
11
+ import Incentives from 'src/components/sections/Incentives'
10
12
  import ProductTiles from 'src/components/sections/ProductTiles'
11
- import { OverriddenDefaultBannerText as BannerText } from 'src/components/sections/BannerText/OverriddenDefaultBannerText'
12
- import Newsletter from 'src/components/sections/Newsletter'
13
13
  import { getPage } from 'src/server/cms'
14
14
  import type { PageContentType } from 'src/server/cms'
15
15
  import CUSTOM_COMPONENTS from 'src/customizations/src/components'
@@ -5,21 +5,9 @@ import { useUI } from '@faststore/ui'
5
5
  import type { InputFieldProps } from '@faststore/ui'
6
6
 
7
7
  import { useNewsletter } from 'src/sdk/newsletter/useNewsletter'
8
+ import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
8
9
 
9
10
  import type { NewsletterProps as SectionNewsletterProps } from 'src/components/sections/Newsletter'
10
- import {
11
- Newsletter as NewsletterWrapper,
12
- NewsletterAddendum,
13
- NewsletterContent,
14
- NewsletterForm,
15
- NewsletterHeader,
16
- ToastIconSuccess,
17
- ToastIconError,
18
- HeaderIcon,
19
- InputFieldName,
20
- InputFieldEmail,
21
- Button,
22
- } from 'src/components/sections/Newsletter/Overrides'
23
11
 
24
12
  export type NewsletterProps = SectionNewsletterProps
25
13
 
@@ -38,6 +26,20 @@ function Newsletter({
38
26
  toastSubscribeError,
39
27
  colorVariant,
40
28
  }: NewsletterProps) {
29
+ const {
30
+ Button,
31
+ HeaderIcon,
32
+ InputFieldName,
33
+ InputFieldEmail,
34
+ Newsletter: NewsletterWrapper,
35
+ NewsletterAddendum,
36
+ NewsletterContent,
37
+ NewsletterForm,
38
+ NewsletterHeader,
39
+ ToastIconError,
40
+ ToastIconSuccess,
41
+ } = useOverrideComponents<'Newsletter'>()
42
+
41
43
  const { pushToast } = useUI()
42
44
  const { subscribeUser, loading, data } = useNewsletter()
43
45
 
@@ -1,2 +1,5 @@
1
1
  export { default } from './Newsletter'
2
2
  export type { NewsletterProps } from './Newsletter'
3
+
4
+ export { NewsletterAddendum } from './NewsletterAddendum'
5
+ export type { NewsletterAddendumProps } from './NewsletterAddendum'
@@ -6,9 +6,9 @@ import type { ComponentType } from 'react'
6
6
  import RenderSections from 'src/components/cms/RenderSections'
7
7
  import { OverriddenDefaultBannerText as BannerText } from 'src/components/sections/BannerText/OverriddenDefaultBannerText'
8
8
  import { OverriddenDefaultHero as Hero } from 'src/components/sections/Hero/OverriddenDefaultHero'
9
- import Incentives from 'src/components/sections/Incentives'
10
- import Newsletter from 'src/components/sections/Newsletter'
9
+ import { OverriddenDefaultNewsletter as Newsletter } from 'src/components/sections/Newsletter/OverriddenDefaultNewsletter'
11
10
  import { OverriddenDefaultProductShelf as ProductShelf } from 'src/components/sections/ProductShelf/OverriddenDefaultProductShelf'
11
+ import Incentives from 'src/components/sections/Incentives'
12
12
  import ProductTiles from 'src/components/sections/ProductTiles'
13
13
  import CUSTOM_COMPONENTS from 'src/customizations/src/components'
14
14
  import { mark } from 'src/sdk/tests/mark'
@@ -2,6 +2,8 @@ import Alert from '../../components/sections/Alert'
2
2
  import BannerText from '../../components/sections/BannerText'
3
3
  import Breadcrumb from '../../components/sections/Breadcrumb'
4
4
  import Hero from '../../components/sections/Hero'
5
+ import Navbar from '../../components/sections/Navbar'
6
+ import Newsletter from '../../components/sections/Newsletter'
5
7
  import ProductShelf from '../../components/sections/ProductShelf'
6
8
  import CrossSellingShelf from '../../components/sections/CrossSellingShelf'
7
9
  import ProductDetails from '../../components/sections/ProductDetails'
@@ -15,6 +17,8 @@ import { BannerTextDefaultComponents } from '../../components/sections/BannerTex
15
17
  import { BreadcrumbDefaultComponents } from 'src/components/sections/Breadcrumb/DefaultComponents'
16
18
  import { CrossSellingShelfDefaultComponents } from 'src/components/sections/CrossSellingShelf/DefaultComponents'
17
19
  import { HeroDefaultComponents } from '../../components/sections/Hero/DefaultComponents'
20
+ import { NavbarDefaultComponents } from 'src/components/sections/Navbar/DefaultComponents'
21
+ import { NewsletterDefaultComponents } from '../../components/sections/Newsletter/DefaultComponents'
18
22
  import { ProductDetailsDefaultComponents } from '../../components/sections/ProductDetails/DefaultComponents'
19
23
  import { ProductGalleryDefaultComponents } from '../../components/sections/ProductGallery/DefaultComponents'
20
24
  import { ProductShelfDefaultComponents } from '../../components/sections/ProductShelf/DefaultComponents'
@@ -26,6 +30,8 @@ export const Sections = {
26
30
  Breadcrumb,
27
31
  CrossSellingShelf,
28
32
  Hero,
33
+ Navbar,
34
+ Newsletter,
29
35
  ProductDetails,
30
36
  ProductGallery,
31
37
  ProductShelf,
@@ -43,6 +49,8 @@ export const DefaultComponents: Partial<
43
49
  Breadcrumb: BreadcrumbDefaultComponents,
44
50
  CrossSellingShelf: CrossSellingShelfDefaultComponents,
45
51
  Hero: HeroDefaultComponents,
52
+ Navbar: NavbarDefaultComponents,
53
+ Newsletter: NewsletterDefaultComponents,
46
54
  ProductDetails: ProductDetailsDefaultComponents,
47
55
  ProductGallery: ProductGalleryDefaultComponents,
48
56
  ProductShelf: ProductShelfDefaultComponents,
@@ -58,6 +58,8 @@ export type SupportedSectionsOverridesV2 = Pick<
58
58
  | 'Breadcrumb'
59
59
  | 'CrossSellingShelf'
60
60
  | 'Hero'
61
+ | 'Navbar'
62
+ | 'Newsletter'
61
63
  | 'ProductShelf'
62
64
  | 'ProductDetails'
63
65
  | 'ProductGallery'