Skip to content

Commit f8140ef

Browse files
committed
Route ClawWatch preregistration through xfor callback
1 parent 144737e commit f8140ef

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

docs/.vercel/project.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"projectId":"prj_JyWMIBnoiGLre3cxCASvKvejebMe","orgId":"team_1VLVA8dXkZktuxR4rHzSzmo6","projectName":"clawwatch-app"}

docs/app.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const watchModelInputs = Array.from(document.querySelectorAll('input[name="watch
1212
const feedbackInput = document.getElementById('preregister-feedback');
1313
const PREREG_DRAFT_KEY = 'clawwatch-preregister-draft';
1414
const PREREG_PENDING_KEY = 'clawwatch-preregister-pending';
15+
const XFOR_AUTH_CALLBACK_URL = 'https://xfor.bot/auth/callback';
1516

1617
let supabaseClient = null;
1718
let hasShownThankYou = false;
@@ -96,6 +97,17 @@ function hasPendingPreregistration() {
9697
}
9798
}
9899

100+
function buildSharedAuthRedirectUrl() {
101+
const { watchModels, feedback } = getFormState();
102+
const params = new URLSearchParams({
103+
clawwatch_preregister: '1',
104+
return_to: `${window.location.origin}${window.location.pathname}?preregister=complete#preregister`,
105+
watch_models: watchModels.join(','),
106+
feedback
107+
});
108+
return `${XFOR_AUTH_CALLBACK_URL}?${params.toString()}`;
109+
}
110+
99111
function applyFormState(metadata = {}) {
100112
const selected = Array.isArray(metadata.clawwatch_watch_models) ? metadata.clawwatch_watch_models : [];
101113
const selectedSet = new Set(selected);
@@ -219,7 +231,7 @@ async function startGoogleSignIn() {
219231
saveDraftState();
220232
setPendingPreregistration(true);
221233

222-
const redirectTo = `${window.location.origin}${window.location.pathname}?preregister=complete#preregister`;
234+
const redirectTo = buildSharedAuthRedirectUrl();
223235
const { data, error } = await supabaseClient.auth.signInWithOAuth({
224236
provider: 'google',
225237
options: {
@@ -303,6 +315,15 @@ async function init() {
303315
} else {
304316
renderRegistered(data.session.user);
305317
}
318+
} else if (preregComplete) {
319+
if (savedDraft) {
320+
applyDraftState(savedDraft);
321+
}
322+
clearDraftState();
323+
setPendingPreregistration(false);
324+
renderSignedOut();
325+
setBanner("Thank you for your interest! We'll be back when the easy-to-install ClawWatch is here.", 'success');
326+
showThankYouModal();
306327
} else {
307328
renderSignedOut();
308329
}

0 commit comments

Comments
 (0)