From 9bf08cecb91fe37adc7f2c323bab2f3c7e642bc6 Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Thu, 1 Feb 2024 01:34:07 +0200 Subject: [PATCH 1/9] [DEV-12376] Change `galleries` count prop to relying on `mediaHref` --- .../ui/src/components/Navigation/Navigation.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/ui/src/components/Navigation/Navigation.tsx b/packages/ui/src/components/Navigation/Navigation.tsx index ee9bbc76b..df1c5d45a 100644 --- a/packages/ui/src/components/Navigation/Navigation.tsx +++ b/packages/ui/src/components/Navigation/Navigation.tsx @@ -29,14 +29,15 @@ export function Navigation({ indexHref, aboutHref, contactsHref, + mediaHref, }: Navigation.Props) { const [openMobileNav, setOpenMobileNav] = useState(false); const { isSm } = useDevice(); - const { name, galleries, logo } = newsroom; + const { name, logo } = newsroom; const hasExtraLinks = Boolean( categories.options.length > 0 || languages.length > 0 || - galleries || + mediaHref || hasStandaloneAboutPage || hasStandaloneContactsPage || externalSiteLink, @@ -47,7 +48,7 @@ export function Navigation({ [ categories.options.length, languages.length, - galleries, + mediaHref, hasStandaloneAboutPage, hasStandaloneContactsPage, externalSiteLink, @@ -110,7 +111,7 @@ export function Navigation({ categories.options.length > 0 || hasStandaloneAboutPage || hasStandaloneContactsPage || - galleries, + mediaHref, ) && (
{categories.options.length > 0 && ( @@ -120,8 +121,8 @@ export function Navigation({ indexHref={categories.indexHref} /> )} - {galleries > 0 && ( - + {mediaHref && ( + {intl['media.title'] ?? 'Media'} )} @@ -204,7 +205,6 @@ export namespace Navigation { export interface DisplayedNewsroom { name: Newsroom['display_name']; - galleries: Newsroom['public_galleries_number']; logo: Newsroom['newsroom_logo']; } From 40da52564f80467e42a2ffbab03c047c1d5a289c Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Mon, 5 Feb 2024 14:45:53 +0200 Subject: [PATCH 2/9] [DEV-12376] Fix usage of dropped property --- packages/ui/src/components/Navigation/Navigation.stories.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/ui/src/components/Navigation/Navigation.stories.tsx b/packages/ui/src/components/Navigation/Navigation.stories.tsx index 7016a0c5f..0024b5ac9 100644 --- a/packages/ui/src/components/Navigation/Navigation.stories.tsx +++ b/packages/ui/src/components/Navigation/Navigation.stories.tsx @@ -20,7 +20,6 @@ const DISPLAYED_CATEGORIES: Navigation.DisplayedCategory[] = CATEGORIES.map((cat const DISPLAYED_NEWSROOM: Navigation.DisplayedNewsroom = { name: NEWSROOM.display_name, - galleries: NEWSROOM.public_galleries_number, logo: NEWSROOM.newsroom_logo, }; From 801e555b0f5fe4cc1ee0399512c2cadd24f04a2d Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Tue, 13 Feb 2024 13:37:34 +0200 Subject: [PATCH 3/9] [DEV-12494] Inline TS aliases when building code --- package-lock.json | 265 +++++++++++++++++++++++++++++++++++++ package.json | 1 + packages/ui/babel.cjs.json | 12 ++ packages/ui/babel.esm.json | 12 ++ packages/ui/package.json | 8 +- 5 files changed, 294 insertions(+), 4 deletions(-) create mode 100644 packages/ui/babel.cjs.json create mode 100644 packages/ui/babel.esm.json diff --git a/package-lock.json b/package-lock.json index 59a14208f..5282071c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "@types/react-dom": "18.2.19", "babel-plugin-add-import-extension": "1.6.0", "babel-plugin-auto-import": "1.1.0", + "babel-plugin-module-resolver": "^5.0.0", "babel-plugin-transform-remove-imports": "1.7.1", "concurrently": "7.6.0", "eslint": "8.56.0", @@ -15049,6 +15050,62 @@ "npm": ">=6" } }, + "node_modules/babel-plugin-module-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", + "dev": true, + "dependencies": { + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.8", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", @@ -18701,6 +18758,19 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/find-babel-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz", + "integrity": "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==", + "dev": true, + "dependencies": { + "json5": "^2.1.1", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -26177,6 +26247,79 @@ "node": ">=8" } }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/playwright": { "version": "1.41.2", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.2.tgz", @@ -27849,6 +27992,12 @@ "optional": true, "peer": true }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "dev": true + }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -44198,6 +44347,52 @@ "resolve": "^1.19.0" } }, + "babel-plugin-module-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", + "dev": true, + "requires": { + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "babel-plugin-polyfill-corejs2": { "version": "0.4.8", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", @@ -46865,6 +47060,16 @@ } } }, + "find-babel-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz", + "integrity": "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==", + "dev": true, + "requires": { + "json5": "^2.1.1", + "path-exists": "^4.0.0" + } + }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -52291,6 +52496,60 @@ } } }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } + } + }, "playwright": { "version": "1.41.2", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.2.tgz", @@ -53420,6 +53679,12 @@ "optional": true, "peer": true }, + "reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "dev": true + }, "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", diff --git a/package.json b/package.json index 1a788a9a1..38f737294 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "@types/react-dom": "18.2.19", "babel-plugin-add-import-extension": "1.6.0", "babel-plugin-auto-import": "1.1.0", + "babel-plugin-module-resolver": "^5.0.0", "babel-plugin-transform-remove-imports": "1.7.1", "concurrently": "7.6.0", "eslint": "8.56.0", diff --git a/packages/ui/babel.cjs.json b/packages/ui/babel.cjs.json new file mode 100644 index 000000000..b79faee0e --- /dev/null +++ b/packages/ui/babel.cjs.json @@ -0,0 +1,12 @@ +{ + "extends": "../../babel.cjs.json", + "plugins": [ + [ + "babel-plugin-module-resolver", + { + "root": ["./src"], + "alias": { "@": "./src" } + } + ] + ] +} diff --git a/packages/ui/babel.esm.json b/packages/ui/babel.esm.json new file mode 100644 index 000000000..fd70d6ba5 --- /dev/null +++ b/packages/ui/babel.esm.json @@ -0,0 +1,12 @@ +{ + "extends": "../../babel.esm.json", + "plugins": [ + [ + "babel-plugin-module-resolver", + { + "root": ["./src"], + "alias": { "@": "./src" } + } + ] + ] +} diff --git a/packages/ui/package.json b/packages/ui/package.json index 5b1a08a56..1f3ce042e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -31,11 +31,11 @@ "build:types": "tsc --project .", "build:css": "postcss ./styles/base.styles.css -o ./build/styles.css", "build:esm": "npm run build:esm:code && npm run build:esm:icons", - "build:esm:code": "babel --config-file=../../babel.esm.json src/ --out-dir=build/ --extensions=.ts,.tsx --out-file-extension=.mjs", - "build:esm:icons": "babel --config-file=../../babel.esm.json src/ --out-dir=build/ --extensions=.svg --out-file-extension=.svg.mjs", + "build:esm:code": "babel --config-file=./babel.esm.json src/ --out-dir=build/ --extensions=.ts,.tsx --out-file-extension=.mjs", + "build:esm:icons": "babel --config-file=./babel.esm.json src/ --out-dir=build/ --extensions=.svg --out-file-extension=.svg.mjs", "build:cjs": "npm run build:cjs:code && npm run build:cjs:icons", - "build:cjs:code": "babel --config-file=../../babel.cjs.json src/ --out-dir=build/ --extensions=.ts,.tsx --out-file-extension=.cjs", - "build:cjs:icons": "babel --config-file=../../babel.cjs.json src/ --out-dir=build/ --extensions=.svg --out-file-extension=.svg.cjs", + "build:cjs:code": "babel --config-file=./babel.cjs.json src/ --out-dir=build/ --extensions=.ts,.tsx --out-file-extension=.cjs", + "build:cjs:icons": "babel --config-file=./babel.cjs.json src/ --out-dir=build/ --extensions=.svg --out-file-extension=.svg.cjs", "preview": "vite preview", "build-storybook": "storybook build", "storybook": "storybook dev -p 6006", From 18a39a5c28564664db240d2909047df89b3b974b Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Tue, 13 Feb 2024 13:45:53 +0200 Subject: [PATCH 4/9] [DEV-12376] Mark `Dropdown` component as client-side It relies on `radix-ui/react-dropdown-menu`, which in turn uses React context --- packages/ui/src/components/Dropdown/Dropdown.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/ui/src/components/Dropdown/Dropdown.tsx b/packages/ui/src/components/Dropdown/Dropdown.tsx index 337282f1e..c02ed251f 100644 --- a/packages/ui/src/components/Dropdown/Dropdown.tsx +++ b/packages/ui/src/components/Dropdown/Dropdown.tsx @@ -1,3 +1,5 @@ +'use client'; + import { ChevronDownIcon } from '@heroicons/react/20/solid'; import { DropdownMenu, From 95f311f3d49d1181552d3f789dd732542db2fa8c Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Tue, 13 Feb 2024 17:20:15 +0200 Subject: [PATCH 5/9] [DEV-12376] Fix broken package `main` and `module` definitions --- packages/ui/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 1f3ce042e..4102bfb0e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -8,8 +8,8 @@ }, "homepage": "https://github.com/prezly/theme-kit-js/tree/main/packages/ui#readme", "license": "MIT", - "main": "./build/index.cjs.js", - "module": "./build/index.es.js", + "main": "./build/index.cjs", + "module": "./build/index.mjs", "types": "./build/index.d.ts", "exports": { ".": { From 582a54c112044ab42aa865ba2148d2ec37ee8631 Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Tue, 13 Feb 2024 18:30:39 +0200 Subject: [PATCH 6/9] [DEV-12376] Fix TS build of `ui` package --- packages/ui/package.json | 2 +- tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 4102bfb0e..2b46aa4e7 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -25,7 +25,7 @@ "url": "git+https://github.com/prezly/theme-kit-js.git" }, "scripts": { - "prebuild": "rimraf build/*", + "prebuild": "rimraf build/* *.tsbuildinfo", "dev": "vite", "build": "npm run build:types && npm run build:esm && npm run build:cjs && npm run build:css", "build:types": "tsc --project .", diff --git a/tsconfig.json b/tsconfig.json index 19c95f52e..b64cd9d5a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -30,7 +30,7 @@ "references": [ { "path": "./packages/nextjs" }, { "path": "./packages/core" }, -// { "path": "./packages/ui" }, + { "path": "./packages/ui" }, { "path": "./packages/intl" } ] } From 58c2b278f3572323857e5f8754af9e5a172568a7 Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Wed, 14 Feb 2024 12:56:50 +0200 Subject: [PATCH 7/9] [DEV-12376] Add `children` to `SubscriptionCta` component (needed for captcha) --- .../SubscriptionCta/SubscriptionCta.stories.tsx | 13 ++++++++++--- .../SubscriptionCta/SubscriptionCta.tsx | 15 ++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.stories.tsx b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.stories.tsx index c299c64c7..eabe987ec 100644 --- a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.stories.tsx +++ b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.stories.tsx @@ -1,4 +1,6 @@ +/* eslint-disable @typescript-eslint/no-use-before-define */ import type { Meta, StoryFn, StoryObj } from '@storybook/react'; +import type { FormEvent } from 'react'; import { SubscriptionCta } from './SubscriptionCta'; @@ -14,9 +16,10 @@ export default { }, } satisfies Meta; -const SubscriptionCtaTemplate: StoryFn = (args) => ( - -); +const SubscriptionCtaTemplate: StoryFn = ({ + onSubmit = preventDefault, + ...args +}) => ; export const Default: StoryObj = SubscriptionCtaTemplate.bind({}); Default.args = {}; @@ -25,3 +28,7 @@ export const WithError: StoryObj = SubscriptionCtaTempla WithError.args = { error: 'Invalid email', }; + +function preventDefault(event: FormEvent) { + event.preventDefault(); +} diff --git a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx index 0a3b2bcd1..b340e0b5a 100644 --- a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx +++ b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx @@ -1,4 +1,4 @@ -import type { FormEvent } from 'react'; +import type { FormEvent, ReactNode } from 'react'; import { twMerge } from 'tailwind-merge'; import { Button } from '../Button'; @@ -11,13 +11,8 @@ export function SubscriptionCta({ onChange, onSubmit, intl = {}, + children, }: SubscriptionCta.Props) { - function handleSubmit(event?: FormEvent) { - event?.preventDefault(); - - onSubmit(); - } - return (
onChange(event.target.value)} /> + {children} @@ -60,7 +56,8 @@ export namespace SubscriptionCta { value: string; error?: string; onChange: (value: string) => void; - onSubmit: () => void; + onSubmit: (event: FormEvent) => void; intl?: Partial; + children?: ReactNode; } } From 1ac6831f15b1ee27d8ff9aa7714130fd68afb715 Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Wed, 14 Feb 2024 15:15:13 +0200 Subject: [PATCH 8/9] [DEV-12376] Fix prop type definition --- packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx index b340e0b5a..58a61bd31 100644 --- a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx +++ b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx @@ -56,7 +56,7 @@ export namespace SubscriptionCta { value: string; error?: string; onChange: (value: string) => void; - onSubmit: (event: FormEvent) => void; + onSubmit: (event: FormEvent) => void; intl?: Partial; children?: ReactNode; } From 4530c7d5ab7e513c4901c81b5b1c016b40ba36a0 Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Wed, 14 Feb 2024 17:16:36 +0200 Subject: [PATCH 9/9] [DEV-12376] Add `disabled` property --- .../ui/src/components/SubscriptionCta/SubscriptionCta.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx index 58a61bd31..b37b4379f 100644 --- a/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx +++ b/packages/ui/src/components/SubscriptionCta/SubscriptionCta.tsx @@ -6,6 +6,7 @@ import { Input } from '../Input'; export function SubscriptionCta({ className, + disabled = false, error, value, onChange, @@ -34,9 +35,10 @@ export function SubscriptionCta({ placeholder={intl['subscription.labelEmail'] ?? 'Enter your email'} value={value} onChange={(event) => onChange(event.target.value)} + readOnly={disabled} /> {children} - @@ -53,6 +55,7 @@ export namespace SubscriptionCta { export interface Props { className?: string; + disabled?: boolean; value: string; error?: string; onChange: (value: string) => void;