@revenuecat/purchases-ui-js 2.2.0 → 2.2.1
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/paywall/Paywall.stories.svelte +15 -0
- package/dist/components/paywall/Paywall.svelte +9 -0
- package/dist/components/paywall/Paywall.svelte.d.ts +4 -0
- package/dist/components/purchase-button/PurchaseButton.svelte +11 -2
- package/dist/stores/paywall.d.ts +4 -0
- package/dist/stories/paywall-decorator.d.ts +4 -1
- package/dist/stories/paywall-decorator.js +2 -1
- package/package.json +1 -1
|
@@ -322,3 +322,18 @@
|
|
|
322
322
|
paywallData: listTemplate,
|
|
323
323
|
}}
|
|
324
324
|
/>
|
|
325
|
+
|
|
326
|
+
<Story
|
|
327
|
+
name="Wallet Button"
|
|
328
|
+
args={{
|
|
329
|
+
paywallData: pastaPaywallData,
|
|
330
|
+
walletButtonRender: (element: HTMLElement, selectedPackageId) => {
|
|
331
|
+
const newDiv = document.createElement("div");
|
|
332
|
+
newDiv.innerText = "Hi! I was injected from the walletButtonRender";
|
|
333
|
+
newDiv.style.width = "100%";
|
|
334
|
+
newDiv.style.textAlign = "center";
|
|
335
|
+
element.append(newDiv);
|
|
336
|
+
return {};
|
|
337
|
+
},
|
|
338
|
+
}}
|
|
339
|
+
/>
|
|
@@ -40,6 +40,13 @@
|
|
|
40
40
|
onNavigateToUrlClicked?: (url: string) => void;
|
|
41
41
|
onActionTriggered?: (actionId: string) => void;
|
|
42
42
|
onError?: (error: unknown) => void;
|
|
43
|
+
walletButtonRender?: (
|
|
44
|
+
node: HTMLElement,
|
|
45
|
+
selectedPackageId: string,
|
|
46
|
+
) => {
|
|
47
|
+
destroy?: () => void;
|
|
48
|
+
update?: (selectedPackageId: string) => void;
|
|
49
|
+
};
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
const {
|
|
@@ -56,6 +63,7 @@
|
|
|
56
63
|
onActionTriggered,
|
|
57
64
|
onError,
|
|
58
65
|
uiConfig,
|
|
66
|
+
walletButtonRender,
|
|
59
67
|
}: Props = $props();
|
|
60
68
|
|
|
61
69
|
const getColorMode = setColorModeContext(() => preferredColorMode);
|
|
@@ -127,6 +135,7 @@
|
|
|
127
135
|
infoPerPackage: readable(infoPerPackage),
|
|
128
136
|
onPurchase,
|
|
129
137
|
onButtonAction,
|
|
138
|
+
walletButtonRender,
|
|
130
139
|
uiConfig,
|
|
131
140
|
});
|
|
132
141
|
|
|
@@ -16,6 +16,10 @@ interface Props {
|
|
|
16
16
|
onNavigateToUrlClicked?: (url: string) => void;
|
|
17
17
|
onActionTriggered?: (actionId: string) => void;
|
|
18
18
|
onError?: (error: unknown) => void;
|
|
19
|
+
walletButtonRender?: (node: HTMLElement, selectedPackageId: string) => {
|
|
20
|
+
destroy?: () => void;
|
|
21
|
+
update?: (selectedPackageId: string) => void;
|
|
22
|
+
};
|
|
19
23
|
}
|
|
20
24
|
declare const Paywall: import("svelte").Component<Props, {}, "">;
|
|
21
25
|
type Paywall = ReturnType<typeof Paywall>;
|
|
@@ -4,8 +4,17 @@
|
|
|
4
4
|
import type { PurchaseButtonProps } from "../../types/components/purchase-button";
|
|
5
5
|
|
|
6
6
|
const { stack }: PurchaseButtonProps = $props();
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const { onPurchase, walletButtonRender, selectedPackageId } =
|
|
8
|
+
getPaywallContext();
|
|
9
9
|
</script>
|
|
10
10
|
|
|
11
|
+
{#if walletButtonRender}
|
|
12
|
+
{#if $selectedPackageId}
|
|
13
|
+
<div
|
|
14
|
+
style="width: 100%; margin-bottom:20px"
|
|
15
|
+
use:walletButtonRender={$selectedPackageId}
|
|
16
|
+
></div>
|
|
17
|
+
{/if}
|
|
18
|
+
{/if}
|
|
19
|
+
|
|
11
20
|
<Stack {...stack} onclick={onPurchase} />
|
package/dist/stores/paywall.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ type PaywallContext = Readonly<{
|
|
|
7
7
|
variablesPerPackage: Readable<Record<string, VariableDictionary> | undefined>;
|
|
8
8
|
infoPerPackage: Readable<Record<string, PackageInfo> | undefined>;
|
|
9
9
|
onPurchase: () => void;
|
|
10
|
+
walletButtonRender?: (node: HTMLElement, selectedPackageId: string) => {
|
|
11
|
+
destroy?: () => void;
|
|
12
|
+
update?: (selectedPackageId: string) => void;
|
|
13
|
+
};
|
|
10
14
|
onButtonAction: (action: Action, actionId?: string) => void;
|
|
11
15
|
uiConfig: UIConfig;
|
|
12
16
|
}>;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { DecoratorFunction, Renderer } from "storybook/internal/csf";
|
|
2
|
-
export declare function paywallDecorator<TRenderer extends Renderer, TArgs>(
|
|
2
|
+
export declare function paywallDecorator<TRenderer extends Renderer, TArgs>(walletButtonRender?: (node: HTMLElement, selectedPackageId: string) => {
|
|
3
|
+
destroy?: () => void;
|
|
4
|
+
update?: (selectedPackageId: string) => void;
|
|
5
|
+
}): DecoratorFunction<TRenderer, TArgs>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { setPaywallContext } from "../stores/paywall";
|
|
2
2
|
import { readable, writable } from "svelte/store";
|
|
3
|
-
export function paywallDecorator() {
|
|
3
|
+
export function paywallDecorator(walletButtonRender) {
|
|
4
4
|
return (Story) => {
|
|
5
5
|
const selectedPackageId = writable(undefined);
|
|
6
6
|
selectedPackageId.subscribe((packageId) => {
|
|
@@ -19,6 +19,7 @@ export function paywallDecorator() {
|
|
|
19
19
|
infoPerPackage: readable(undefined),
|
|
20
20
|
onPurchase: () => window.alert("Purchase clicked"),
|
|
21
21
|
onButtonAction: (action, actionId) => window.alert(`Button clicked: ${JSON.stringify({ action, actionId }, undefined, 2)}`),
|
|
22
|
+
walletButtonRender,
|
|
22
23
|
uiConfig: emptyUiConfig,
|
|
23
24
|
});
|
|
24
25
|
return Story();
|