= ({ listTypes }) => {
{type === "gift_cards" ?
:
}
+
+
+
+
+
diff --git a/packages/cart/src/components/atoms/IconRepeat.tsx b/packages/cart/src/components/atoms/IconRepeat.tsx
new file mode 100644
index 00000000..b0a9dc3f
--- /dev/null
+++ b/packages/cart/src/components/atoms/IconRepeat.tsx
@@ -0,0 +1,14 @@
+import { FC } from "react"
+
+export const IconRepeat: FC<{ className?: string }> = ({ className }) => (
+
+)
diff --git a/packages/cart/src/utils/frequency.test.ts b/packages/cart/src/utils/frequency.test.ts
new file mode 100644
index 00000000..afb02dc8
--- /dev/null
+++ b/packages/cart/src/utils/frequency.test.ts
@@ -0,0 +1,13 @@
+import { isValidCronExpression } from "#utils/frequency"
+
+describe("isValidCronExpression", () => {
+ test("Should return true for valid cron expressions", () => {
+ expect(isValidCronExpression("0 0 1 * *")).toBe(true)
+ expect(isValidCronExpression("0 3 * 3 *")).toBe(true)
+ })
+
+ test("Should return false for invalid cron expressions", () => {
+ expect(isValidCronExpression("0 0 A")).toBe(false)
+ expect(isValidCronExpression("* 1 3 0 * * 2")).toBe(false)
+ })
+})
diff --git a/packages/cart/src/utils/frequency.ts b/packages/cart/src/utils/frequency.ts
new file mode 100644
index 00000000..8d97d5ba
--- /dev/null
+++ b/packages/cart/src/utils/frequency.ts
@@ -0,0 +1,12 @@
+import { parseExpression } from "cron-parser"
+
+export function isValidCronExpression(
+ cronExpression: any
+): cronExpression is string {
+ try {
+ parseExpression(cronExpression)
+ return true
+ } catch (e) {
+ return false
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 11a34abf..ef8d5bc7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -62,6 +62,12 @@ importers:
classnames:
specifier: ^2.3.2
version: 2.3.2
+ cron-parser:
+ specifier: ^4.9.0
+ version: 4.9.0
+ cronstrue:
+ specifier: ^2.44.0
+ version: 2.44.0
dotenv:
specifier: ^16.3.1
version: 16.3.1
@@ -3080,6 +3086,18 @@ packages:
resolution: {integrity: sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA==}
dev: false
+ /cron-parser@4.9.0:
+ resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ luxon: 3.4.4
+ dev: false
+
+ /cronstrue@2.44.0:
+ resolution: {integrity: sha512-71aQD16uXrqjDUYHsFYY4/SSmEepzQZqTqWsU9x2kDMCYKyIp/5e0QW/cp2lBNO9PJB1xOpIbBJuQEa5yKx98A==}
+ hasBin: true
+ dev: false
+
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -5724,6 +5742,11 @@ packages:
engines: {node: 14 || >=16.14}
dev: true
+ /luxon@3.4.4:
+ resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
+ engines: {node: '>=12'}
+ dev: false
+
/magic-string@0.30.5:
resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
engines: {node: '>=12'}
From 4b202e019ce9af7f5973c434b9e6d57124b941ac Mon Sep 17 00:00:00 2001
From: Giuseppe Ciotola <30926550+gciotola@users.noreply.github.com>
Date: Tue, 21 Nov 2023 17:00:23 +0100
Subject: [PATCH 2/3] fix: uniform frequency badge spacing
---
packages/cart/src/components/Cart/Summary/LineItemFrequency.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/cart/src/components/Cart/Summary/LineItemFrequency.tsx b/packages/cart/src/components/Cart/Summary/LineItemFrequency.tsx
index ecd5ace9..8d97fe54 100644
--- a/packages/cart/src/components/Cart/Summary/LineItemFrequency.tsx
+++ b/packages/cart/src/components/Cart/Summary/LineItemFrequency.tsx
@@ -25,7 +25,7 @@ export const LineItemFrequency: FC = () => {
return (
From d3e323b6175a398bdc236d5636d17f11d0115083 Mon Sep 17 00:00:00 2001
From: Giuseppe Ciotola <30926550+gciotola@users.noreply.github.com>
Date: Wed, 22 Nov 2023 08:41:29 +0100
Subject: [PATCH 3/3] v3.2.4
---
lerna.json | 2 +-
packages/cart/package.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lerna.json b/lerna.json
index a3ffe3cf..0176f4d0 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "3.2.3",
+ "version": "3.2.4",
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"useNx": false,
"npmClient": "pnpm",
diff --git a/packages/cart/package.json b/packages/cart/package.json
index bac59036..ba1b99a5 100644
--- a/packages/cart/package.json
+++ b/packages/cart/package.json
@@ -1,6 +1,6 @@
{
"name": "mfe-cart",
- "version": "3.2.3",
+ "version": "3.2.4",
"private": true,
"author": {
"name": "Giuseppe Ciotola",