From 9bbcb26d11a7cfe57a0e08ff11aae59799bb239f Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 21 May 2026 16:41:08 -0700 Subject: [PATCH 1/4] Add conditional query params with status === null in rewardsCountFilteredQuery --- .../components/sqm-big-stat/useBigStat.tsx | 124 +++++++++--------- 1 file changed, 63 insertions(+), 61 deletions(-) diff --git a/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx b/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx index 5e6cdc391..ed2688f71 100644 --- a/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx +++ b/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx @@ -28,7 +28,7 @@ type Goal = { const debugQuery = ( query: Parameters[0], variables: unknown, - getStat: (res: QueryData) => { value: number; statvalue: string } + getStat: (res: QueryData) => { value: number; statvalue: string }, ) => { const res = useQuery(query, variables); if (!res?.data && !res.loading) { @@ -42,7 +42,7 @@ const referralsCountQuery = ( programId: string, // locale _: string, - status?: "started" | "converted" + status?: "started" | "converted", ) => { const programFilter = programId === "classic" @@ -53,8 +53,8 @@ const referralsCountQuery = ( status && status == "converted" ? { dateConverted_exists: true } : status && status == "started" - ? { dateConverted_exists: false } - : {}; + ? { dateConverted_exists: false } + : {}; const queryFilter = { ...programFilter, ...convertedFilter }; @@ -75,7 +75,7 @@ const referralsCountQuery = ( (res) => ({ value: res.data?.viewer?.referrals?.totalCount || 0, statvalue: res.data?.viewer?.referrals?.totalCount?.toString(), - }) + }), ); }; @@ -83,7 +83,7 @@ const programGoalsQuery = ( programId: string, locale: string, metricType: string, - goalId: string + goalId: string, ) => { // Confirm this behaviour if (programId === "classic") return null; @@ -106,13 +106,13 @@ const programGoalsQuery = ( { programId, metricType, goalId, locale }, (res) => { const goal = res.data?.viewer?.programGoals?.filter( - (goal: Goal) => goal.goalId === goalId && goal.programId === programId + (goal: Goal) => goal.goalId === goalId && goal.programId === programId, ); return { value: goal?.[0]?.[metricType] || 0, statvalue: goal?.[0]?.[metricType]?.toString() || 0, }; - } + }, ); }; @@ -120,7 +120,7 @@ const customFieldsQuery = ( _programId: string, locale: string, fieldName: string, - goalId: string + goalId: string, ) => { return debugQuery( gql` @@ -139,15 +139,15 @@ const customFieldsQuery = ( value: customField || 0, statvalue: customField?.toString() || "0", }; - } + }, ); }; const referralsMonthQuery = ( programId: string, - // locale + // locale _: string, - status?: "started" | "converted" + status?: "started" | "converted", ) => { const programFilter = programId === "classic" @@ -158,8 +158,8 @@ const referralsMonthQuery = ( status && status == "converted" ? { dateConverted_exists: true } : status && status == "started" - ? { dateConverted_exists: false } - : {}; + ? { dateConverted_exists: false } + : {}; const filter = { ...programFilter, @@ -183,15 +183,15 @@ const referralsMonthQuery = ( (res) => ({ value: res.data?.viewer?.referrals?.totalCount || 0, statvalue: res.data?.viewer?.referrals?.totalCount?.toString(), - }) + }), ); }; const referralsWeekQuery = ( programId: string, - // locale + // locale _: string, - status?: "started" | "converted" + status?: "started" | "converted", ) => { const programFilter = programId === "classic" @@ -202,8 +202,8 @@ const referralsWeekQuery = ( status && status == "converted" ? { dateConverted_exists: true } : status && status == "started" - ? { dateConverted_exists: false } - : {}; + ? { dateConverted_exists: false } + : {}; const filter = { ...programFilter, @@ -226,7 +226,7 @@ const referralsWeekQuery = ( (res) => ({ value: res.data?.viewer?.referrals?.totalCount || 0, statvalue: res.data?.viewer?.referrals?.totalCount?.toString(), - }) + }), ); }; @@ -234,7 +234,7 @@ const rewardsCountQuery = ( programId: string, // locale _: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -254,7 +254,7 @@ const rewardsCountQuery = ( (res) => ({ value: res.data?.viewer?.rewards?.totalCount || 0, statvalue: res.data?.viewer?.rewards?.totalCount?.toString(), - }) + }), ); }; @@ -265,9 +265,12 @@ const rewardsCountFilteredQuery = ( type?: string, unit?: string, status?: string, - global = "" + global = "", ) => { const statusFilter = status ? { status } : null; + console.log(statusFilter, "status filter "); + // When EARNED is selected in the content editor, the status variable is passed as null + // before it was querying statuses_eq: $statusFilter so it was not filtering anything based on status return debugQuery( gql` @@ -275,7 +278,7 @@ const rewardsCountFilteredQuery = ( $programId: ID $unit: String $type: RewardType - $statusFilter: RewardStatusFilterInput + ${statusFilter ? "$statusFilter: RewardStatusFilterInput" : ""} ) { viewer { ... on User { @@ -284,7 +287,7 @@ const rewardsCountFilteredQuery = ( programId_eq: $programId type_eq: $type unit_eq: $unit - statuses_eq: $statusFilter + ${statusFilter ? "statuses_eq: $statusFilter" : "statuses_nin: [{status: CANCELLED}, {status: EXPIRED}]"} } ) { totalCount @@ -302,7 +305,7 @@ const rewardsCountFilteredQuery = ( (res) => ({ value: res.data?.viewer?.rewards?.totalCount || 0, statvalue: res.data?.viewer?.rewards?.totalCount?.toString(), - }) + }), ); }; @@ -311,7 +314,7 @@ const integrationRewardsCountFilteredQuery = ( // locale _: string, status?: string, - global = "" + global = "", ) => { const statusFilter = status ? { status } : null; @@ -340,7 +343,7 @@ const integrationRewardsCountFilteredQuery = ( (res) => ({ value: res.data?.viewer?.rewards?.totalCount || 0, statvalue: res.data?.viewer?.rewards?.totalCount?.toString(), - }) + }), ); }; @@ -348,7 +351,7 @@ const rewardsMonthQuery = ( programId: string, // locale _: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -373,7 +376,7 @@ const rewardsMonthQuery = ( (res) => ({ value: res.data?.viewer?.rewards?.totalCount || 0, statvalue: res.data?.viewer?.rewards?.totalCount?.toString(), - }) + }), ); }; @@ -381,7 +384,7 @@ const rewardsWeekQuery = ( programId: string, // locale _: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -406,7 +409,7 @@ const rewardsWeekQuery = ( (res) => ({ value: res.data?.viewer?.rewards?.totalCount || 0, statvalue: res.data?.viewer?.rewards?.totalCount?.toString(), - }) + }), ); }; @@ -415,7 +418,7 @@ const rewardsPendingQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -459,7 +462,7 @@ const rewardsPendingQuery = ( value: arr?.[0]?.prettyPendingCredit || 0, statvalue: arr?.[0]?.prettyPendingCredit || fallback, }; - } + }, ); }; @@ -468,7 +471,7 @@ const rewardsRedeemedQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -512,7 +515,7 @@ const rewardsRedeemedQuery = ( value: arr?.[0]?.prettyRedeemedCredit || 0, statvalue: arr?.[0]?.prettyRedeemedCredit || fallback, }; - } + }, ); }; @@ -521,7 +524,7 @@ const rewardsRedeemedWeekQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -556,7 +559,7 @@ const rewardsRedeemedWeekQuery = ( const fallback = 0; const redeemedTotal = rewardData?.reduce( (total, reward) => (total += reward.redeemedCredit), - fallback + fallback, ); if (redeemedTotal !== undefined) { @@ -587,7 +590,7 @@ const rewardsRedeemedWeekQuery = ( value: fallback, statvalue: "...", }; - } + }, ); }; @@ -596,7 +599,7 @@ const rewardsRedeemedMonthQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -631,7 +634,7 @@ const rewardsRedeemedMonthQuery = ( const fallback = 0; const redeemedTotal = rewardData?.reduce( (total, reward) => (total += reward.redeemedCredit), - fallback + fallback, ); if (redeemedTotal !== undefined) { @@ -662,7 +665,7 @@ const rewardsRedeemedMonthQuery = ( value: fallback, statvalue: "...", }; - } + }, ); }; @@ -671,7 +674,7 @@ const rewardsAssignedQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -715,7 +718,7 @@ const rewardsAssignedQuery = ( value: arr?.[0]?.prettyAssignedCredit || 0, statvalue: arr?.[0]?.prettyAssignedCredit || fallback, }; - } + }, ); }; @@ -724,7 +727,7 @@ const rewardsExpiredQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -768,7 +771,7 @@ const rewardsExpiredQuery = ( value: arr?.[0]?.prettyExpiredCredit || 0, statvalue: arr?.[0]?.prettyExpiredCredit || fallback, }; - } + }, ); }; @@ -777,7 +780,7 @@ const rewardsCancelledQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -821,7 +824,7 @@ const rewardsCancelledQuery = ( value: arr?.[0]?.prettyCancelledCredit || 0, statvalue: arr?.[0]?.prettyCancelledCredit || fallback, }; - } + }, ); }; @@ -830,7 +833,7 @@ const rewardsAvailableQuery = ( locale: string, type: string, unit: string, - global = "" + global = "", ) => { return debugQuery( gql` @@ -874,7 +877,7 @@ const rewardsAvailableQuery = ( value: arr?.[0]?.prettyAvailableValue || 0, statvalue: arr?.[0]?.prettyAvailableValue || fallback, }; - } + }, ); }; @@ -888,7 +891,7 @@ const rewardsBalanceQuery = ( type: string, unit: string, format = "prettyValue", - global = "" + global = "", ) => { const formatType = parseRewardValueFormat[format] ?? "UNIT_FORMATTED"; @@ -935,8 +938,7 @@ const rewardsBalanceQuery = ( const fallback = res.data?.fallback; const balance = arr?.[0]; const totalEarned = balance - ? (balance.totalAssignedCredit || 0) + - (balance.totalPendingCredit || 0) + ? (balance.totalAssignedCredit || 0) + (balance.totalPendingCredit || 0) : 0; const result = useQuery( @@ -961,14 +963,14 @@ const rewardsBalanceQuery = ( locale, format: formatType, }, - res.loading + res.loading, ); return { value: totalEarned, statvalue: result?.data?.formatRewardPrettyValue || fallback, }; - } + }, ); }; @@ -994,7 +996,7 @@ const trafficQuery = () => { value: traffic || fallback, statvalue: traffic || fallback, }; - } + }, ); }; @@ -1054,7 +1056,7 @@ const userStatsQuery = (_programId, _locale, statId) => { value: stat || fallback, statvalue: stat || fallback, }; - } + }, ); }; @@ -1086,7 +1088,7 @@ const payoutBalanceQuery = () => { value: balance || fallback, statvalue: balanceText, }; - } + }, ); }; // functions are of the form (programId: string, ...args: string) => string @@ -1262,7 +1264,7 @@ export const StatPaths = [ ]; export const StatPatterns = StatPaths.map((pattern) => - pathToRegexp(pattern.route) + pathToRegexp(pattern.route), ); export function useBigStat(props: BigStat): BigStatHook { @@ -1280,7 +1282,7 @@ export function useBigStat(props: BigStat): BigStatHook { const userIdent = useUserIdentity(); const re = useMemo( () => StatPatterns.find((re) => re.exec(statType)), - [statType] + [statType], ); if (!re?.exec(statType)) { @@ -1318,7 +1320,7 @@ export function useBigStat(props: BigStat): BigStatHook { // Retrieve all key values in order including undefined const queryArgs = keys.map((_, i) => - allQueryArgs[i + 1] ? decodeURIComponent(allQueryArgs[i + 1]) : undefined + allQueryArgs[i + 1] ? decodeURIComponent(allQueryArgs[i + 1]) : undefined, ); // remove query name from list queryArgs.shift(); From 6f95015fbda0e1ebd02d507328a4dc933e90a1ca Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 22 May 2026 10:43:38 -0700 Subject: [PATCH 2/4] Add status filtering for integrationsRewardsCountFilterQuery --- .../src/components/sqm-big-stat/useBigStat.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx b/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx index ed2688f71..3085bbb61 100644 --- a/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx +++ b/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx @@ -268,9 +268,6 @@ const rewardsCountFilteredQuery = ( global = "", ) => { const statusFilter = status ? { status } : null; - console.log(statusFilter, "status filter "); - // When EARNED is selected in the content editor, the status variable is passed as null - // before it was querying statuses_eq: $statusFilter so it was not filtering anything based on status return debugQuery( gql` @@ -320,14 +317,14 @@ const integrationRewardsCountFilteredQuery = ( return debugQuery( gql` - query ($programId: ID, $statusFilter: RewardStatusFilterInput) { + query ($programId: ID, ${statusFilter ? "$statusFilter: RewardStatusFilterInput" : ""}) { viewer { ... on User { rewards( filter: { programId_eq: $programId type_eq: INTEGRATION - statuses_eq: $statusFilter + ${statusFilter ? "statuses_eq: $statusFilter" : "statuses_nin: [{status: CANCELLED}, {status: EXPIRED}]"} } ) { totalCount From 0df6cf3e791cc9b3a160f1aa7a7e31d4af7c5a5a Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 22 May 2026 13:17:13 -0700 Subject: [PATCH 3/4] publish pre-release --- packages/mint-components/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mint-components/package.json b/packages/mint-components/package.json index 3bd4e8a16..d388d3bfe 100644 --- a/packages/mint-components/package.json +++ b/packages/mint-components/package.json @@ -1,7 +1,7 @@ { "name": "@saasquatch/mint-components", "title": "Mint Components", - "version": "2.1.11", + "version": "2.1.12-0", "description": "A minimal design library with components for referral and loyalty experiences. Built with Shoelace components by Saasquatch.", "icon": "https://res.cloudinary.com/saasquatch/image/upload/v1652219900/squatch-assets/For_Mint.svg", "raisins": "docs/raisins.json", From 0f45046f5d56d9803d2c134790ce86c9501c450a Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 25 May 2026 14:44:40 -0700 Subject: [PATCH 4/4] Add changeset --- packages/mint-components/.changeset/quiet-cats-rhyme.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/mint-components/.changeset/quiet-cats-rhyme.md diff --git a/packages/mint-components/.changeset/quiet-cats-rhyme.md b/packages/mint-components/.changeset/quiet-cats-rhyme.md new file mode 100644 index 000000000..2d9ff9539 --- /dev/null +++ b/packages/mint-components/.changeset/quiet-cats-rhyme.md @@ -0,0 +1,5 @@ +--- +"@saasquatch/mint-components": patch +--- + +Update rewardsCountFilteredQuery and integrationRewardsCountFilteredQuery to do conditional querying if EARNED status is passed