@stigg/react-sdk 4.4.5 → 4.4.6
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/dist/components/common/TiersSelectContainer.d.ts +2 -1
- package/dist/components/paywall/PlanPrice.d.ts +2 -2
- package/dist/react-sdk.cjs.development.js +20 -22
- package/dist/react-sdk.cjs.development.js.map +1 -1
- package/dist/react-sdk.cjs.production.min.js +1 -1
- package/dist/react-sdk.cjs.production.min.js.map +1 -1
- package/dist/react-sdk.esm.js +20 -22
- package/dist/react-sdk.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/common/TiersSelectContainer.tsx +3 -1
- package/src/components/paywall/PlanPrice.tsx +12 -17
package/package.json
CHANGED
|
@@ -29,11 +29,13 @@ const TierInput = styled(OutlinedInput)`
|
|
|
29
29
|
export function TiersSelectContainer({
|
|
30
30
|
componentId,
|
|
31
31
|
tiers,
|
|
32
|
+
tierUnits,
|
|
32
33
|
selectedTier,
|
|
33
34
|
handleTierChange,
|
|
34
35
|
}: {
|
|
35
36
|
componentId: string;
|
|
36
37
|
tiers?: PriceTierFragment[] | null;
|
|
38
|
+
tierUnits?: string;
|
|
37
39
|
selectedTier?: PriceTierFragment;
|
|
38
40
|
handleTierChange: (tier: PriceTierFragment) => void;
|
|
39
41
|
}) {
|
|
@@ -61,7 +63,7 @@ export function TiersSelectContainer({
|
|
|
61
63
|
{map(tiers, (tier: PriceTierFragment) => (
|
|
62
64
|
<MenuItem className="stigg-price-tier-menu-item-text" key={tier.upTo} value={tier.upTo.toString()}>
|
|
63
65
|
<Typography variant="body1" color="primary" style={{ lineHeight: 'unset' }}>
|
|
64
|
-
{tier.upTo}
|
|
66
|
+
{tier.upTo} {tierUnits}
|
|
65
67
|
</Typography>
|
|
66
68
|
</MenuItem>
|
|
67
69
|
))}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import styled from '@emotion/styled/macro';
|
|
3
3
|
import { BillingPeriod, PriceTierFragment } from '@stigg/js-client-sdk';
|
|
4
4
|
import { PaywallPlan } from './types';
|
|
@@ -71,7 +71,7 @@ export const PlanPrice = ({
|
|
|
71
71
|
withStartingAtRow: boolean;
|
|
72
72
|
withTiersRow: boolean;
|
|
73
73
|
selectedTierByFeature: Record<string, PriceTierFragment>;
|
|
74
|
-
setSelectedTierByFeature:
|
|
74
|
+
setSelectedTierByFeature: React.Dispatch<React.SetStateAction<Record<string, PriceTierFragment>>>;
|
|
75
75
|
plan: PaywallPlan;
|
|
76
76
|
billingPeriod: BillingPeriod;
|
|
77
77
|
paywallLocale: PaywallLocalization;
|
|
@@ -79,7 +79,7 @@ export const PlanPrice = ({
|
|
|
79
79
|
hasAnnuallyPrice: boolean;
|
|
80
80
|
locale: string;
|
|
81
81
|
}) => {
|
|
82
|
-
const { price, unit, tiers } = getPlanPrice(
|
|
82
|
+
const { price, unit, tiers, tierUnits } = getPlanPrice(
|
|
83
83
|
plan,
|
|
84
84
|
billingPeriod,
|
|
85
85
|
paywallLocale,
|
|
@@ -87,31 +87,25 @@ export const PlanPrice = ({
|
|
|
87
87
|
hasMonthlyPrice,
|
|
88
88
|
selectedTierByFeature,
|
|
89
89
|
);
|
|
90
|
-
const [selectedTier, setSelectedTier] = useState<PriceTierFragment>();
|
|
91
90
|
|
|
92
91
|
// We currently only support prices with one tier - so we select the first one
|
|
93
92
|
const tieredPrice = plan.pricePoints.find((planPrice) => {
|
|
94
93
|
return planPrice.billingPeriod === billingPeriod && planPrice.isTieredPrice;
|
|
95
94
|
});
|
|
96
95
|
const featureId = tieredPrice ? tieredPrice.feature!.featureId : undefined;
|
|
97
|
-
|
|
98
|
-
useEffect(() => {
|
|
99
|
-
setSelectedTier(featureId ? selectedTierByFeature[featureId] : undefined);
|
|
100
|
-
}, [featureId, selectedTierByFeature]);
|
|
96
|
+
const selectedTier = featureId ? selectedTierByFeature[featureId] : undefined;
|
|
101
97
|
|
|
102
98
|
const handleTierChange = (tier: PriceTierFragment) => {
|
|
103
|
-
|
|
104
|
-
|
|
99
|
+
if (!featureId) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
105
102
|
|
|
106
|
-
setSelectedTierByFeature(
|
|
103
|
+
setSelectedTierByFeature((prevState) => ({
|
|
104
|
+
...prevState,
|
|
105
|
+
[featureId]: tier,
|
|
106
|
+
}));
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
useEffect(() => {
|
|
110
|
-
if (tiers) {
|
|
111
|
-
handleTierChange(selectedTierByFeature[featureId!]);
|
|
112
|
-
}
|
|
113
|
-
}, []);
|
|
114
|
-
|
|
115
109
|
return (
|
|
116
110
|
<PlanPriceContainer className="stigg-price-text">
|
|
117
111
|
<>
|
|
@@ -147,6 +141,7 @@ export const PlanPrice = ({
|
|
|
147
141
|
<TiersSelectContainer
|
|
148
142
|
componentId={`${plan.id}_${featureId}_tier`}
|
|
149
143
|
tiers={tiers}
|
|
144
|
+
tierUnits={tierUnits}
|
|
150
145
|
selectedTier={selectedTier}
|
|
151
146
|
handleTierChange={handleTierChange}
|
|
152
147
|
/>
|