@slyxup/ui 2.5.3 → 3.0.0
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/README.md +33 -10
- package/dist/components/BillingPortal/BillingPortal.d.ts +2 -1
- package/dist/components/BillingPortal/BillingPortal.d.ts.map +1 -1
- package/dist/components/BillingPortal/BillingPortal.js +2 -2
- package/dist/components/BillingPortal/BillingPortal.js.map +1 -1
- package/dist/components/CurrentPlanCard/CurrentPlanCard.d.ts +19 -3
- package/dist/components/CurrentPlanCard/CurrentPlanCard.d.ts.map +1 -1
- package/dist/components/CurrentPlanCard/CurrentPlanCard.js +129 -23
- package/dist/components/CurrentPlanCard/CurrentPlanCard.js.map +1 -1
- package/dist/components/InvoicesTable/InvoicesTable.d.ts +4 -2
- package/dist/components/InvoicesTable/InvoicesTable.d.ts.map +1 -1
- package/dist/components/InvoicesTable/InvoicesTable.js +23 -19
- package/dist/components/InvoicesTable/InvoicesTable.js.map +1 -1
- package/dist/components/PlanCard/PlanCard.js +1 -1
- package/dist/components/PlanCard/PlanCard.js.map +1 -1
- package/dist/components/PricingTable/PricingTable.d.ts +2 -2
- package/dist/components/PricingTable/PricingTable.d.ts.map +1 -1
- package/dist/components/PricingTable/PricingTable.js +8 -1
- package/dist/components/PricingTable/PricingTable.js.map +1 -1
- package/dist/components/SignIn/SignIn.d.ts.map +1 -1
- package/dist/components/SignIn/SignIn.js +43 -14
- package/dist/components/SignIn/SignIn.js.map +1 -1
- package/dist/components/SignUp/SignUp.d.ts.map +1 -1
- package/dist/components/SignUp/SignUp.js +15 -5
- package/dist/components/SignUp/SignUp.js.map +1 -1
- package/dist/components/SocialButtons/SocialButtons.d.ts.map +1 -1
- package/dist/components/SocialButtons/SocialButtons.js +16 -7
- package/dist/components/SocialButtons/SocialButtons.js.map +1 -1
- package/dist/components/SubscriptionStatus/SubscriptionStatus.d.ts.map +1 -1
- package/dist/components/SubscriptionStatus/SubscriptionStatus.js +14 -0
- package/dist/components/SubscriptionStatus/SubscriptionStatus.js.map +1 -1
- package/dist/react/context/auth-context.d.ts +4 -0
- package/dist/react/context/auth-context.d.ts.map +1 -1
- package/dist/react/context/auth-context.js.map +1 -1
- package/dist/react/hooks/useAuth.d.ts +2 -0
- package/dist/react/hooks/useAuth.d.ts.map +1 -1
- package/dist/react/hooks/useAuth.js +3 -0
- package/dist/react/hooks/useAuth.js.map +1 -1
- package/dist/react/hooks/useBilling.d.ts +2 -0
- package/dist/react/hooks/useBilling.d.ts.map +1 -1
- package/dist/react/hooks/useBilling.js +56 -13
- package/dist/react/hooks/useBilling.js.map +1 -1
- package/dist/react/provider/SlyxUpProvider.d.ts +4 -1
- package/dist/react/provider/SlyxUpProvider.d.ts.map +1 -1
- package/dist/react/provider/SlyxUpProvider.js +19 -4
- package/dist/react/provider/SlyxUpProvider.js.map +1 -1
- package/dist/styles.d.ts +2 -2
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +22 -8
- package/dist/styles.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,33 +1,44 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { SlyxupError } from '@slyxup/core';
|
|
3
|
-
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { useEffect, useId, useRef, useState } from 'react';
|
|
4
4
|
import { GitHubIcon, GoogleIcon, KeyholeMark } from '../../icons';
|
|
5
5
|
import { useAuth } from '../../react/hooks/useAuth';
|
|
6
6
|
import { injectStyles } from '../../styles';
|
|
7
7
|
import { PasswordField } from '../PasswordField';
|
|
8
8
|
/** Email/password + OAuth sign-in card. */
|
|
9
|
-
export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswordClick, layout = 'centered', username = false, brandTitle = 'Ship auth in minutes', brandSubtitle = 'Email, OAuth and 2FA — one integration, secured by default.', brandPoints = [
|
|
9
|
+
export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswordClick, layout = 'centered', username = false, brandTitle = 'Ship auth in minutes', brandSubtitle = 'Email, OAuth and 2FA — one integration, secured by default.', brandPoints = [
|
|
10
|
+
'Email + OAuth out of the box',
|
|
11
|
+
'HttpOnly sessions, secured by default',
|
|
12
|
+
'Billing ready when you are',
|
|
13
|
+
], }) {
|
|
10
14
|
injectStyles();
|
|
11
|
-
const { signIn, completeSignIn, client } = useAuth();
|
|
15
|
+
const { signIn, completeSignIn, client, oauthChallenge, authError } = useAuth();
|
|
16
|
+
const id = useId();
|
|
12
17
|
const [email, setEmail] = useState('');
|
|
13
18
|
const [password, setPassword] = useState('');
|
|
14
19
|
const [busy, setBusy] = useState(false);
|
|
15
20
|
const [error, setError] = useState(null);
|
|
16
21
|
const [challengeToken, setChallengeToken] = useState(null);
|
|
17
22
|
const [tfaCode, setTfaCode] = useState('');
|
|
23
|
+
const [recoveryMode, setRecoveryMode] = useState(false);
|
|
18
24
|
const cardRef = useRef(null);
|
|
19
25
|
useEffect(() => {
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
if (oauthChallenge)
|
|
27
|
+
setChallengeToken(oauthChallenge);
|
|
28
|
+
}, [oauthChallenge]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (authError)
|
|
31
|
+
setError(authError);
|
|
32
|
+
}, [authError]);
|
|
25
33
|
async function onSubmit(e) {
|
|
26
34
|
e.preventDefault();
|
|
27
35
|
setBusy(true);
|
|
28
36
|
setError(null);
|
|
29
37
|
try {
|
|
30
|
-
const
|
|
38
|
+
const identity = email.trim();
|
|
39
|
+
const res = await signIn(username && !identity.includes('@')
|
|
40
|
+
? { username: identity, password }
|
|
41
|
+
: { email: identity, password });
|
|
31
42
|
if (res && 'challengeToken' in res) {
|
|
32
43
|
setChallengeToken(res.challengeToken);
|
|
33
44
|
return;
|
|
@@ -50,7 +61,12 @@ export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswo
|
|
|
50
61
|
setBusy(true);
|
|
51
62
|
setError(null);
|
|
52
63
|
try {
|
|
53
|
-
await completeSignIn({
|
|
64
|
+
await completeSignIn({
|
|
65
|
+
challengeToken,
|
|
66
|
+
...(recoveryMode
|
|
67
|
+
? { recoveryCode: tfaCode.trim() }
|
|
68
|
+
: { code: tfaCode.trim() }),
|
|
69
|
+
});
|
|
54
70
|
onSuccess?.();
|
|
55
71
|
}
|
|
56
72
|
catch (err) {
|
|
@@ -61,15 +77,28 @@ export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswo
|
|
|
61
77
|
}
|
|
62
78
|
}
|
|
63
79
|
function oauth(provider) {
|
|
64
|
-
|
|
65
|
-
|
|
80
|
+
void client.auth
|
|
81
|
+
.startOAuth(provider)
|
|
82
|
+
.catch((error) => setError(error instanceof Error
|
|
83
|
+
? error.message
|
|
84
|
+
: 'Unable to start social sign-in'));
|
|
66
85
|
}
|
|
67
86
|
const missingKey = !client.publishableKey ||
|
|
68
87
|
client.publishableKey === 'pk_test_missing' ||
|
|
69
88
|
client.publishableKey.includes('REPLACE');
|
|
70
|
-
return (_jsxs("div", { ref: cardRef, className: `slx-card${error ? ' slx-card-error' : ''}${layout === 'centered' ? '' : ` slx-layout-${layout}`}`, children: [layout === 'split' && (_jsxs("div", { className: "slx-split-brand", children: [_jsx("div", { className: "slx-split-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h2", { className: "slx-split-title", children: brandTitle }), _jsx("p", { className: "slx-split-sub", children: brandSubtitle }), _jsx("ul", { className: "slx-split-points", children: brandPoints.map((pt) => (_jsx("li", { children: pt }, pt))) })] })), _jsxs("div", { className: layout === 'split' ? 'slx-split-form' : 'slx-form-full', children: [missingKey && (_jsxs("p", { className: "slx-setup-note", children: [_jsx("strong", { children: "Setup:" }), " Add", ' ', _jsx("code", { children: "NEXT_PUBLIC_SLYXUP_PUBLISHABLE_KEY" }), " to", ' ', _jsx("code", { children: ".env.local" })
|
|
89
|
+
return (_jsxs("div", { ref: cardRef, className: `slx-card${error ? ' slx-card-error' : ''}${layout === 'centered' ? '' : ` slx-layout-${layout}`}`, children: [layout === 'split' && (_jsxs("div", { className: "slx-split-brand", children: [_jsx("div", { className: "slx-split-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h2", { className: "slx-split-title", children: brandTitle }), _jsx("p", { className: "slx-split-sub", children: brandSubtitle }), _jsx("ul", { className: "slx-split-points", children: brandPoints.map((pt) => (_jsx("li", { children: pt }, pt))) })] })), _jsxs("div", { className: layout === 'split' ? 'slx-split-form' : 'slx-form-full', children: [missingKey && (_jsxs("p", { className: "slx-setup-note", children: [_jsx("strong", { children: "Setup:" }), " Add", ' ', _jsx("code", { children: "NEXT_PUBLIC_SLYXUP_PUBLISHABLE_KEY" }), " to", ' ', _jsx("code", { children: ".env.local" })] })), _jsx("div", { className: "slx-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h1", { className: "slx-title", children: "Sign in" }), _jsx("p", { className: "slx-subtitle", children: "Welcome back. Enter your details to continue." }), social && !challengeToken && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "slx-social", children: [_jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('google'), children: [_jsx(GoogleIcon, {}), " Continue with Google"] }), _jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('github'), children: [_jsx(GitHubIcon, {}), " Continue with GitHub"] })] }), _jsx("div", { className: "slx-divider", children: "or" })] })), error && (_jsx("p", { id: `${id}-error`, className: "slx-error-text", role: "alert", children: error })), challengeToken ? (_jsxs("form", { onSubmit: onSubmit2FA, "aria-busy": busy, "aria-describedby": error ? `${id}-error` : undefined, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: `${id}-2fa`, children: recoveryMode ? 'Recovery code' : 'Authenticator code' }), _jsx("input", { id: `${id}-2fa`, className: "slx-input", type: "text", inputMode: recoveryMode ? 'text' : 'numeric', autoComplete: "one-time-code", maxLength: recoveryMode ? 128 : 6, pattern: recoveryMode ? undefined : '[0-9]{6}', placeholder: recoveryMode ? 'Enter a saved recovery code' : '000000', value: tfaCode, onChange: (e) => setTfaCode(recoveryMode
|
|
90
|
+
? e.target.value
|
|
91
|
+
: e.target.value.replace(/\D/g, '')), disabled: busy, required: true }), _jsx("p", { className: "slx-hint", children: recoveryMode
|
|
92
|
+
? 'Each recovery code can be used once.'
|
|
93
|
+
: 'Enter the 6-digit code from your authenticator app.' })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Verifying…' : 'Verify code'] }), _jsx("button", { type: "button", className: "slx-link", disabled: busy, onClick: () => {
|
|
94
|
+
setRecoveryMode(!recoveryMode);
|
|
95
|
+
setTfaCode('');
|
|
96
|
+
setError(null);
|
|
97
|
+
}, children: recoveryMode ? 'Use authenticator app' : 'Use a recovery code' }), _jsx("button", { type: "button", className: "slx-link", style: { marginTop: 8 }, disabled: busy, onClick: () => {
|
|
71
98
|
setChallengeToken(null);
|
|
72
99
|
setTfaCode('');
|
|
73
|
-
|
|
100
|
+
setError(null);
|
|
101
|
+
setRecoveryMode(false);
|
|
102
|
+
}, children: "\u2190 Back to sign in" })] })) : (_jsxs("form", { onSubmit: onSubmit, "aria-busy": busy, "aria-describedby": error ? `${id}-error` : undefined, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: `${id}-email`, children: username ? (_jsxs(_Fragment, { children: ["Username ", _jsx("span", { className: "slx-hint", children: "or email" })] })) : ('Email') }), _jsx("input", { id: `${id}-email`, className: "slx-input", type: username ? 'text' : 'email', autoComplete: "username", placeholder: username ? 'you@example.com or yourname' : 'you@example.com', disabled: busy, value: email, onChange: (e) => setEmail(e.target.value), required: true })] }), _jsxs("div", { className: "slx-field", children: [_jsxs("div", { className: "slx-row", children: [_jsx("label", { className: "slx-label", htmlFor: `${id}-password`, children: "Password" }), onForgotPasswordClick && (_jsx("button", { type: "button", className: "slx-link slx-forgot", onClick: onForgotPasswordClick, children: "Forgot password?" }))] }), _jsx(PasswordField, { id: `${id}-password`, value: password, onChange: setPassword, autoComplete: "current-password", placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", required: true })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Signing in…' : 'Sign in'] })] })), onSignUpClick && (_jsxs("p", { className: "slx-footer", children: ["Don't have an account?", ' ', _jsx("button", { type: "button", className: "slx-link", onClick: onSignUpClick, children: "Sign up" })] }))] })] }));
|
|
74
103
|
}
|
|
75
104
|
//# sourceMappingURL=SignIn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignIn.js","sourceRoot":"","sources":["../../../src/components/SignIn/SignIn.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SignIn.js","sourceRoot":"","sources":["../../../src/components/SignIn/SignIn.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUp.d.ts","sourceRoot":"","sources":["../../../src/components/SignUp/SignUp.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SignUp.d.ts","sourceRoot":"","sources":["../../../src/components/SignUp/SignUp.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oGAAoG;IACpG,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,2CAA2C;AAC3C,wBAAgB,MAAM,CAAC,EACrB,MAAa,EACb,SAAS,EACT,aAAa,EACb,MAAmB,EACnB,QAAQ,EAAE,YAAmB,EAC7B,UAAkC,EAClC,aAA4D,EAC5D,WAIC,GACF,EAAE,WAAW,+BA8Nb"}
|
|
@@ -5,10 +5,15 @@ import { GitHubIcon, GoogleIcon, KeyholeMark } from '../../icons';
|
|
|
5
5
|
import { useAuth } from '../../react/hooks/useAuth';
|
|
6
6
|
import { injectStyles } from '../../styles';
|
|
7
7
|
import { PasswordField } from '../PasswordField';
|
|
8
|
+
import { SignIn } from '../SignIn/SignIn';
|
|
8
9
|
/** Email/password + OAuth sign-up card. */
|
|
9
|
-
export function SignUp({ social = true, onSuccess, onSignInClick, layout = 'centered', username: showUsername = true, brandTitle = 'Create your account', brandSubtitle = 'A minute to set up. Sign in forever after.', brandPoints = [
|
|
10
|
+
export function SignUp({ social = true, onSuccess, onSignInClick, layout = 'centered', username: showUsername = true, brandTitle = 'Create your account', brandSubtitle = 'A minute to set up. Sign in forever after.', brandPoints = [
|
|
11
|
+
'Email + OAuth out of the box',
|
|
12
|
+
'HttpOnly sessions, secured by default',
|
|
13
|
+
'Billing ready when you are',
|
|
14
|
+
], }) {
|
|
10
15
|
injectStyles();
|
|
11
|
-
const { signUp, client } = useAuth();
|
|
16
|
+
const { signUp, client, oauthChallenge } = useAuth();
|
|
12
17
|
const [firstName, setFirstName] = useState('');
|
|
13
18
|
const [username, setUsername] = useState('');
|
|
14
19
|
const [email, setEmail] = useState('');
|
|
@@ -47,12 +52,17 @@ export function SignUp({ social = true, onSuccess, onSignInClick, layout = 'cent
|
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
function oauth(provider) {
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
void client.auth
|
|
56
|
+
.startOAuth(provider)
|
|
57
|
+
.catch((error) => setError(error instanceof Error
|
|
58
|
+
? error.message
|
|
59
|
+
: 'Unable to start social sign-in'));
|
|
52
60
|
}
|
|
53
61
|
const missingKey = !client.publishableKey ||
|
|
54
62
|
client.publishableKey === 'pk_test_missing' ||
|
|
55
63
|
client.publishableKey.includes('REPLACE');
|
|
56
|
-
|
|
64
|
+
if (oauthChallenge)
|
|
65
|
+
return _jsx(SignIn, { social: false, onSuccess: onSuccess, layout: layout });
|
|
66
|
+
return (_jsxs("div", { ref: cardRef, className: `slx-card${error ? ' slx-card-error' : ''}${layout === 'centered' ? '' : ` slx-layout-${layout}`}`, children: [layout === 'split' && (_jsxs("div", { className: "slx-split-brand", children: [_jsx("div", { className: "slx-split-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h2", { className: "slx-split-title", children: brandTitle }), _jsx("p", { className: "slx-split-sub", children: brandSubtitle }), _jsx("ul", { className: "slx-split-points", children: brandPoints.map((pt) => (_jsx("li", { children: pt }, pt))) })] })), _jsxs("div", { className: layout === 'split' ? 'slx-split-form' : 'slx-form-full', children: [missingKey && (_jsxs("p", { className: "slx-setup-note", children: [_jsx("strong", { children: "Setup:" }), " Add", ' ', _jsx("code", { children: "NEXT_PUBLIC_SLYXUP_PUBLISHABLE_KEY" }), " \u2014 run", ' ', _jsx("code", { children: ".env.local" })] })), _jsx("div", { className: "slx-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h1", { className: "slx-title", children: "Create your account" }), _jsx("p", { className: "slx-subtitle", children: "A minute to set up. Sign in forever after." }), social && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "slx-social", children: [_jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('google'), children: [_jsx(GoogleIcon, {}), " Continue with Google"] }), _jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('github'), children: [_jsx(GitHubIcon, {}), " Continue with GitHub"] })] }), _jsx("div", { className: "slx-divider", children: "or" })] })), error && (_jsx("p", { className: "slx-error-text", role: "alert", children: error })), successEmail && (_jsxs("p", { className: "slx-success-text", "aria-live": "polite", style: { color: 'var(--slx-success)' }, children: ["Account created! We sent a verification link to", ' ', _jsx("strong", { children: successEmail }), ". Check your inbox to verify and sign in."] })), _jsxs("form", { onSubmit: onSubmit, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signup-name", children: "First name" }), _jsx("input", { id: "slx-signup-name", className: "slx-input", type: "text", autoComplete: "given-name", placeholder: "Ada", value: firstName, onChange: (e) => setFirstName(e.target.value) })] }), showUsername && (_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signup-username", children: "Username" }), _jsx("input", { id: "slx-signup-username", className: "slx-input", type: "text", autoComplete: "username", placeholder: "ada", value: username, onChange: (e) => setUsername(e.target.value) }), _jsx("p", { className: "slx-hint", children: "Optional \u2014 lets you sign in with a username instead of your email." })] })), _jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signup-email", children: "Email" }), _jsx("input", { id: "slx-signup-email", className: "slx-input", type: "email", autoComplete: "email", placeholder: "you@example.com", value: email, onChange: (e) => setEmail(e.target.value), required: true })] }), _jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signup-password", children: "Password" }), _jsx(PasswordField, { id: "slx-signup-password", value: password, onChange: setPassword, autoComplete: "new-password", placeholder: "At least 8 characters", required: true, minLength: 8 }), _jsx("p", { className: "slx-hint", children: "Use 8+ characters with a mix of letters and numbers." })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Creating account…' : 'Create account'] })] }), onSignInClick && (_jsxs("p", { className: "slx-footer", children: ["Already have an account?", ' ', _jsx("button", { type: "button", className: "slx-link", onClick: onSignInClick, children: "Sign in" })] }))] })] }));
|
|
57
67
|
}
|
|
58
68
|
//# sourceMappingURL=SignUp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUp.js","sourceRoot":"","sources":["../../../src/components/SignUp/SignUp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"SignUp.js","sourceRoot":"","sources":["../../../src/components/SignUp/SignUp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialButtons.d.ts","sourceRoot":"","sources":["../../../src/components/SocialButtons/SocialButtons.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SocialButtons.d.ts","sourceRoot":"","sources":["../../../src/components/SocialButtons/SocialButtons.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,EAC5B,SAAgC,EAChC,QAAQ,GACT,EAAE,kBAAkB,+BA2CpB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { GitHubIcon, GoogleIcon } from '../../icons';
|
|
3
4
|
import { useAuth } from '../../react/hooks/useAuth';
|
|
4
5
|
import { injectStyles } from '../../styles';
|
|
@@ -9,14 +10,22 @@ const META = {
|
|
|
9
10
|
/** Provider buttons that redirect to hosted OAuth start. */
|
|
10
11
|
export function SocialButtons({ providers = ['google', 'github'], basePath, }) {
|
|
11
12
|
injectStyles();
|
|
13
|
+
const [error, setError] = useState(null);
|
|
12
14
|
const { client } = useAuth();
|
|
13
15
|
const base = basePath ?? `${client?.apiUrl ?? ''}/v1/oauth`;
|
|
14
|
-
return (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
return (_jsxs("div", { className: "slx-social", children: [providers.map((p) => {
|
|
17
|
+
const { label, Icon } = META[p];
|
|
18
|
+
return (_jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => {
|
|
19
|
+
if (basePath && base !== `${client.apiUrl}/v1/oauth`) {
|
|
20
|
+
setError('Configure the provider apiUrl for custom OAuth servers');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
void client.auth
|
|
24
|
+
.startOAuth(p)
|
|
25
|
+
.catch((error) => setError(error instanceof Error
|
|
26
|
+
? error.message
|
|
27
|
+
: 'Unable to start sign-in'));
|
|
28
|
+
}, children: [_jsx(Icon, {}), " ", label] }, p));
|
|
29
|
+
}), error && (_jsx("p", { role: "alert", className: "slx-error-text", children: error }))] }));
|
|
21
30
|
}
|
|
22
31
|
//# sourceMappingURL=SocialButtons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialButtons.js","sourceRoot":"","sources":["../../../src/components/SocialButtons/SocialButtons.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3D,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE;CACnD,CAAC;AAEX,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAChC,QAAQ,GACW;IACnB,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"SocialButtons.js","sourceRoot":"","sources":["../../../src/components/SocialButtons/SocialButtons.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3D,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE;CACnD,CAAC;AAEX,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAChC,QAAQ,GACW;IACnB,YAAY,EAAE,CAAC;IACf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,QAAQ,IAAI,GAAG,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW,CAAC;IAC5D,OAAO,CACL,eAAK,SAAS,EAAC,YAAY,aACxB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,QAAQ,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC;4BACrD,QAAQ,CACN,wDAAwD,CACzD,CAAC;4BACF,OAAO;wBACT,CAAC;wBACD,KAAK,MAAM,CAAC,IAAI;6BACb,UAAU,CAAC,CAAC,CAAC;6BACb,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACxB,QAAQ,CACN,KAAK,YAAY,KAAK;4BACpB,CAAC,CAAC,KAAK,CAAC,OAAO;4BACf,CAAC,CAAC,yBAAyB,CAC9B,CACF,CAAC;oBACN,CAAC,aAED,KAAC,IAAI,KAAG,OAAE,KAAK,KArBV,CAAC,CAsBC,CACV,CAAC;YACJ,CAAC,CAAC,EACD,KAAK,IAAI,CACR,YAAG,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,gBAAgB,YACvC,KAAK,GACJ,CACL,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionStatus.d.ts","sourceRoot":"","sources":["../../../src/components/SubscriptionStatus/SubscriptionStatus.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"SubscriptionStatus.d.ts","sourceRoot":"","sources":["../../../src/components/SubscriptionStatus/SubscriptionStatus.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4CD,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,uBAAuB,+BAsBzB"}
|
|
@@ -11,12 +11,26 @@ function toneFor(status) {
|
|
|
11
11
|
color: '#34d399',
|
|
12
12
|
live: true,
|
|
13
13
|
};
|
|
14
|
+
case 'paid':
|
|
15
|
+
return {
|
|
16
|
+
background: 'rgba(52,211,153,.12)',
|
|
17
|
+
color: '#34d399',
|
|
18
|
+
live: false,
|
|
19
|
+
};
|
|
14
20
|
case 'past_due':
|
|
21
|
+
case 'overdue':
|
|
22
|
+
case 'failed':
|
|
15
23
|
return {
|
|
16
24
|
background: 'rgba(214,69,80,.1)',
|
|
17
25
|
color: 'var(--slx-danger)',
|
|
18
26
|
live: false,
|
|
19
27
|
};
|
|
28
|
+
case 'pending':
|
|
29
|
+
return {
|
|
30
|
+
background: 'rgba(217,119,6,.12)',
|
|
31
|
+
color: '#d97706',
|
|
32
|
+
live: false,
|
|
33
|
+
};
|
|
20
34
|
default:
|
|
21
35
|
return {
|
|
22
36
|
background: 'var(--slx-accent-soft)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionStatus.js","sourceRoot":"","sources":["../../../src/components/SubscriptionStatus/SubscriptionStatus.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C,SAAS,OAAO,CAAC,MAAc;IAK7B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO;gBACL,UAAU,EAAE,sBAAsB;gBAClC,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,KAAK,UAAU;
|
|
1
|
+
{"version":3,"file":"SubscriptionStatus.js","sourceRoot":"","sources":["../../../src/components/SubscriptionStatus/SubscriptionStatus.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C,SAAS,OAAO,CAAC,MAAc;IAK7B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO;gBACL,UAAU,EAAE,sBAAsB;gBAClC,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,UAAU,EAAE,sBAAsB;gBAClC,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,KAAK;aACZ,CAAC;QACJ,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,OAAO;gBACL,UAAU,EAAE,oBAAoB;gBAChC,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,KAAK;aACZ,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,UAAU,EAAE,qBAAqB;gBACjC,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,KAAK;aACZ,CAAC;QACJ;YACE,OAAO;gBACL,UAAU,EAAE,wBAAwB;gBACpC,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,KAAK;aACZ,CAAC;IACN,CAAC;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,GACe;IACxB,YAAY,EAAE,CAAC;IACf,MAAM,GAAG,GAAG,cAAc,CAAkB,KAAK,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CACL,gBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,KAAK;SACT,aAED,eAAM,SAAS,EAAE,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,GAAI,EAChE,MAAM,IACF,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { SlyxupClient, SlyxupUser } from '@slyxup/core';
|
|
2
2
|
export interface AuthContextValue {
|
|
3
3
|
client: SlyxupClient;
|
|
4
|
+
billingApiUrl?: string;
|
|
5
|
+
oauthChallenge?: string | null;
|
|
6
|
+
authError?: string | null;
|
|
7
|
+
clearOAuthChallenge?: () => void;
|
|
4
8
|
isLoaded: boolean;
|
|
5
9
|
isSignedIn: boolean;
|
|
6
10
|
user: SlyxupUser | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../../../src/react/context/auth-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oEAAoE;IACpE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,kDAA+C,CAAC;AAExE,wBAAgB,cAAc,IAAI,gBAAgB,CAKjD"}
|
|
1
|
+
{"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../../../src/react/context/auth-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oEAAoE;IACpE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,kDAA+C,CAAC;AAExE,wBAAgB,cAAc,IAAI,gBAAgB,CAKjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../../../src/react/context/auth-context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../../../src/react/context/auth-context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAoBlD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAExE,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QACN,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -5,6 +5,8 @@ export declare function useAuth(): {
|
|
|
5
5
|
userId: string | null;
|
|
6
6
|
sessionToken: string | null;
|
|
7
7
|
client: import("@slyxup/core").SlyxupClient;
|
|
8
|
+
oauthChallenge: string | null | undefined;
|
|
9
|
+
authError: string | null | undefined;
|
|
8
10
|
signIn: (input: SignInInput) => Promise<import("@slyxup/core").SignInResponse>;
|
|
9
11
|
completeSignIn: (input: CompleteSignInInput) => Promise<import("@slyxup/core").AuthResponse>;
|
|
10
12
|
signUp: (input: SignUpInput) => Promise<import("@slyxup/core").AuthResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useAuth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,wBAAgB,OAAO
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useAuth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,wBAAgB,OAAO;;;;;;;;oBAIQ,WAAW;4BASH,mBAAmB;oBAO3B,WAAW;;;;;;;;;;;;;;;;EA6BzC"}
|
|
@@ -14,6 +14,7 @@ export function useAuth() {
|
|
|
14
14
|
const completeSignIn = async (input) => {
|
|
15
15
|
const res = await client.auth.completeSignIn(input);
|
|
16
16
|
await reload();
|
|
17
|
+
ctx.clearOAuthChallenge?.();
|
|
17
18
|
return res;
|
|
18
19
|
};
|
|
19
20
|
const signUp = async (input) => {
|
|
@@ -32,6 +33,8 @@ export function useAuth() {
|
|
|
32
33
|
userId,
|
|
33
34
|
sessionToken,
|
|
34
35
|
client,
|
|
36
|
+
oauthChallenge: ctx.oauthChallenge,
|
|
37
|
+
authError: ctx.authError,
|
|
35
38
|
signIn,
|
|
36
39
|
completeSignIn,
|
|
37
40
|
signUp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/react/hooks/useAuth.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAOb,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IAE3E,MAAM,MAAM,GAAG,KAAK,EAAE,KAAkB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,2EAA2E;QAC3E,IAAI,CAAC,GAAG,IAAK,GAAyB,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC/D,MAAM,MAAM,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,KAA0B,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,KAAkB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,UAAU;QACV,MAAM;QACN,YAAY;QACZ,MAAM;QACN,MAAM;QACN,cAAc;QACd,MAAM;QACN,OAAO;QACP,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB;QAClD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;QAC1C,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;QACxC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;KACrC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../../src/react/hooks/useAuth.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAOb,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IAE3E,MAAM,MAAM,GAAG,KAAK,EAAE,KAAkB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,2EAA2E;QAC3E,IAAI,CAAC,GAAG,IAAK,GAAyB,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC/D,MAAM,MAAM,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,KAA0B,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,KAAkB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,UAAU;QACV,MAAM;QACN,YAAY;QACZ,MAAM;QACN,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM;QACN,cAAc;QACd,MAAM;QACN,OAAO;QACP,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB;QAClD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;QAC1C,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;QACxC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -16,6 +16,8 @@ export declare function useSubscription(projectId: string | undefined, apiUrl?:
|
|
|
16
16
|
export declare function useInvoices(apiUrl?: string): {
|
|
17
17
|
invoices: Invoice[];
|
|
18
18
|
loading: boolean;
|
|
19
|
+
error: string | null;
|
|
20
|
+
reload: () => Promise<void>;
|
|
19
21
|
};
|
|
20
22
|
export interface CheckoutHookOptions {
|
|
21
23
|
/** Return target carried through payment → success page. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBilling.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useBilling.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useBilling.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useBilling.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAWtB,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;;EAezC;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;;;;EAiCtE;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,MAAM;;;;;EA6BhB;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM;;;;;EA+B1C;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM;uBAMxB,MAAM,SAAS,mBAAmB;;;EAgBpD;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM;;;;;EAuB/C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,CAAC,EAAE,MAAM;;;;;EA8BhB"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { BillingClient, } from '@slyxup/core';
|
|
3
|
-
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
4
|
-
|
|
3
|
+
import { useCallback, useContext, useEffect, useMemo, useRef, useState, } from 'react';
|
|
4
|
+
import { AuthContext } from '../context/auth-context';
|
|
5
5
|
export function useBilling(apiUrl) {
|
|
6
|
-
const
|
|
6
|
+
const auth = useContext(AuthContext);
|
|
7
|
+
const authClient = auth?.client;
|
|
8
|
+
const billingApiUrl = apiUrl ?? auth?.billingApiUrl;
|
|
9
|
+
const userId = auth?.userId;
|
|
10
|
+
const client = useMemo(() => new BillingClient({
|
|
11
|
+
apiUrl: billingApiUrl,
|
|
12
|
+
publishableKey: authClient?.publishableKey,
|
|
13
|
+
getToken: () => (userId ? authClient?.getToken() : undefined),
|
|
14
|
+
}), [billingApiUrl, authClient, userId]);
|
|
7
15
|
return { client };
|
|
8
16
|
}
|
|
9
17
|
export function usePlans(projectId, apiUrl) {
|
|
@@ -12,6 +20,9 @@ export function usePlans(projectId, apiUrl) {
|
|
|
12
20
|
const [loading, setLoading] = useState(true);
|
|
13
21
|
const [error, setError] = useState(null);
|
|
14
22
|
useEffect(() => {
|
|
23
|
+
let active = true;
|
|
24
|
+
setPlans([]);
|
|
25
|
+
setError(null);
|
|
15
26
|
if (!projectId) {
|
|
16
27
|
setLoading(false);
|
|
17
28
|
return;
|
|
@@ -19,9 +30,21 @@ export function usePlans(projectId, apiUrl) {
|
|
|
19
30
|
setLoading(true);
|
|
20
31
|
client
|
|
21
32
|
.listPlans(projectId)
|
|
22
|
-
.then(
|
|
23
|
-
|
|
24
|
-
|
|
33
|
+
.then((value) => {
|
|
34
|
+
if (active)
|
|
35
|
+
setPlans(value);
|
|
36
|
+
})
|
|
37
|
+
.catch((e) => {
|
|
38
|
+
if (active)
|
|
39
|
+
setError(e instanceof Error ? e.message : 'Unable to load plans');
|
|
40
|
+
})
|
|
41
|
+
.finally(() => {
|
|
42
|
+
if (active)
|
|
43
|
+
setLoading(false);
|
|
44
|
+
});
|
|
45
|
+
return () => {
|
|
46
|
+
active = false;
|
|
47
|
+
};
|
|
25
48
|
}, [projectId, client]);
|
|
26
49
|
return { plans, loading, error };
|
|
27
50
|
}
|
|
@@ -57,14 +80,34 @@ export function useInvoices(apiUrl) {
|
|
|
57
80
|
const { client } = useBilling(apiUrl);
|
|
58
81
|
const [invoices, setInvoices] = useState([]);
|
|
59
82
|
const [loading, setLoading] = useState(true);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
83
|
+
const [error, setError] = useState(null);
|
|
84
|
+
const generation = useRef(0);
|
|
85
|
+
const reload = useCallback(async () => {
|
|
86
|
+
const request = ++generation.current;
|
|
87
|
+
setLoading(true);
|
|
88
|
+
setError(null);
|
|
89
|
+
setInvoices([]);
|
|
90
|
+
try {
|
|
91
|
+
const result = await client.listInvoices();
|
|
92
|
+
if (request === generation.current)
|
|
93
|
+
setInvoices(result);
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
if (request === generation.current)
|
|
97
|
+
setError(e instanceof Error ? e.message : 'Unable to load invoices');
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
if (request === generation.current)
|
|
101
|
+
setLoading(false);
|
|
102
|
+
}
|
|
66
103
|
}, [client]);
|
|
67
|
-
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
void reload();
|
|
106
|
+
return () => {
|
|
107
|
+
generation.current++;
|
|
108
|
+
};
|
|
109
|
+
}, [reload]);
|
|
110
|
+
return { invoices, loading, error, reload };
|
|
68
111
|
}
|
|
69
112
|
export function useCheckout(apiUrl) {
|
|
70
113
|
const { client } = useBilling(apiUrl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBilling.js","sourceRoot":"","sources":["../../../src/react/hooks/useBilling.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EACL,aAAa,GAId,MAAM,cAAc,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"useBilling.js","sourceRoot":"","sources":["../../../src/react/hooks/useBilling.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { type SlyxupClientOptions } from '@slyxup/core';
|
|
1
2
|
import { type ReactNode } from 'react';
|
|
2
3
|
export interface SlyxUpProviderProps {
|
|
3
4
|
publishableKey?: string;
|
|
4
5
|
apiUrl?: string;
|
|
6
|
+
billingApiUrl?: string;
|
|
7
|
+
tokenStorage?: SlyxupClientOptions['tokenStorage'];
|
|
5
8
|
children: ReactNode;
|
|
6
9
|
}
|
|
7
|
-
export declare function SlyxUpProvider({ publishableKey, apiUrl, children, }: SlyxUpProviderProps): import("react").JSX.Element;
|
|
10
|
+
export declare function SlyxUpProvider({ publishableKey, apiUrl, billingApiUrl, tokenStorage, children, }: SlyxUpProviderProps): import("react").JSX.Element;
|
|
8
11
|
//# sourceMappingURL=SlyxUpProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlyxUpProvider.d.ts","sourceRoot":"","sources":["../../../src/react/provider/SlyxUpProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SlyxUpProvider.d.ts","sourceRoot":"","sources":["../../../src/react/provider/SlyxUpProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACnD,QAAQ,EAAE,SAAS,CAAC;CACrB;AA6CD,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,EAAE,mBAAmB,+BA2GrB"}
|