From 049a9f67f37412ccc8edc2ce7d504eb4c4858830 Mon Sep 17 00:00:00 2001 From: Charles Zhao Date: Tue, 22 Oct 2024 21:45:44 +0800 Subject: [PATCH 1/3] feat: add email verification code registration sample --- packages/shared/scss/normalized.scss | 21 +++- .../.eslintrc.cjs | 25 ++++ .../sign-up-with-verification-code/dist.zip | Bin 0 -> 57360 bytes .../favicon.ico | Bin 0 -> 15406 bytes .../sign-up-with-verification-code/index.html | 35 ++++++ .../package.json | 32 +++++ .../src/include.d/vite-env.d.ts | 1 + .../src/index.ts | 118 ++++++++++++++++++ .../tsconfig.json | 11 ++ pnpm-lock.yaml | 51 ++++++-- 10 files changed, 284 insertions(+), 10 deletions(-) create mode 100644 packages/sign-up-with-verification-code/.eslintrc.cjs create mode 100644 packages/sign-up-with-verification-code/dist.zip create mode 100644 packages/sign-up-with-verification-code/favicon.ico create mode 100644 packages/sign-up-with-verification-code/index.html create mode 100644 packages/sign-up-with-verification-code/package.json create mode 100644 packages/sign-up-with-verification-code/src/include.d/vite-env.d.ts create mode 100644 packages/sign-up-with-verification-code/src/index.ts create mode 100644 packages/sign-up-with-verification-code/tsconfig.json diff --git a/packages/shared/scss/normalized.scss b/packages/shared/scss/normalized.scss index b296510..0bcb1ca 100644 --- a/packages/shared/scss/normalized.scss +++ b/packages/shared/scss/normalized.scss @@ -54,8 +54,16 @@ form { } } +.flex-wrapper { + display: flex; + align-items: center; + width: 100%; + gap: 10px; +} + input { - height: 24px; + flex: 1; + line-height: 24px; outline: none; padding: 10px; margin: 0; @@ -63,6 +71,17 @@ input { border: 1px solid var(--color-line-border); } +.button { + height: 46px; + border: 1px solid var(--color-line-border); + border-radius: 8px; + font: var(--font-label-3); + + &:not(:disabled):hover { + cursor: pointer; + } +} + .submit-button { display: flex; align-items: center; diff --git a/packages/sign-up-with-verification-code/.eslintrc.cjs b/packages/sign-up-with-verification-code/.eslintrc.cjs new file mode 100644 index 0000000..57e7f69 --- /dev/null +++ b/packages/sign-up-with-verification-code/.eslintrc.cjs @@ -0,0 +1,25 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + extends: '@silverhand/eslint-config', + rules: { + 'jsx-a11y/no-autofocus': 'off', + 'unicorn/prefer-string-replace-all': 'off', + 'no-restricted-syntax': 'off', + '@silverhand/fp/no-mutation': 'off', + '@silverhand/fp/no-let': 'off', + }, + overrides: [ + { + files: ['*.config.js', '*.config.ts', '*.d.ts'], + rules: { + 'import/no-unused-modules': 'off', + }, + }, + { + files: ['*.d.ts'], + rules: { + 'import/no-unassigned-import': 'off', + }, + }, + ], +}; diff --git a/packages/sign-up-with-verification-code/dist.zip b/packages/sign-up-with-verification-code/dist.zip new file mode 100644 index 0000000000000000000000000000000000000000..66ad1f54f8d46e992ae48be5d8b73e4f3fd4b9e9 GIT binary patch literal 57360 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 literal 0 HcmV?d00001 diff --git a/packages/sign-up-with-verification-code/favicon.ico b/packages/sign-up-with-verification-code/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3cf672d954d2e7a259eefa9d3fecc5a65eebd7e7 GIT binary patch literal 15406 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 W_BYinf7Sh&?|Z-hfA0UD2mS}C&gzo@ literal 0 HcmV?d00001 diff --git a/packages/sign-up-with-verification-code/index.html b/packages/sign-up-with-verification-code/index.html new file mode 100644 index 0000000..1cb1373 --- /dev/null +++ b/packages/sign-up-with-verification-code/index.html @@ -0,0 +1,35 @@ + + + + + + Logto experience sample + + + + + + +
+
+ +
+ +
+ + +
+
+
+ + +
+ +
+ +
+ + diff --git a/packages/sign-up-with-verification-code/package.json b/packages/sign-up-with-verification-code/package.json new file mode 100644 index 0000000..b18d06c --- /dev/null +++ b/packages/sign-up-with-verification-code/package.json @@ -0,0 +1,32 @@ +{ + "name": "@logto/experience-sample-verification-code-sign-up", + "description": "A sample project demonstrates how to use Logto Experience API to build a verification code sign-up page.", + "author": "Silverhand Inc. ", + "license": "MIT", + "version": "0.0.0", + "type": "module", + "scripts": { + "precommit": "lint-staged", + "start": "vite", + "dev": "logto-tunnel --verbose & vite", + "build": "tsc -b && vite build", + "lint": "eslint --ext .ts src", + "preview": "vite preview" + }, + "devDependencies": { + "@logto/experience-sample-shared": "workspace:^", + "@logto/schemas": "^1.19.0", + "@silverhand/eslint-config": "^6.0.1", + "@silverhand/ts-config": "^6.0.0", + "eslint": "^8.56.0", + "lint-staged": "^15.0.0", + "prettier": "^3.0.0", + "stylelint": "^15.0.0", + "typescript": "^5.5.3", + "vite": "^5.4.0" + }, + "stylelint": { + "extends": "@silverhand/eslint-config/.stylelintrc" + }, + "prettier": "@silverhand/eslint-config/.prettierrc" +} diff --git a/packages/sign-up-with-verification-code/src/include.d/vite-env.d.ts b/packages/sign-up-with-verification-code/src/include.d/vite-env.d.ts new file mode 100644 index 0000000..e058f21 --- /dev/null +++ b/packages/sign-up-with-verification-code/src/include.d/vite-env.d.ts @@ -0,0 +1 @@ +import 'vite/client'; diff --git a/packages/sign-up-with-verification-code/src/index.ts b/packages/sign-up-with-verification-code/src/index.ts new file mode 100644 index 0000000..437cbda --- /dev/null +++ b/packages/sign-up-with-verification-code/src/index.ts @@ -0,0 +1,118 @@ +import { Api } from '@logto/experience-sample-shared/api'; +import logo from '@logto/experience-sample-shared/assets/logto-logo-light.svg'; +import { InteractionEvent } from '@logto/schemas'; + +import '@logto/experience-sample-shared/scss/normalized.scss'; + +const defaultResendCodeTimeout = 60; +const api = new Api({ baseUrl: window.location.origin }); + +window.addEventListener('load', () => { + document.querySelector('.logo')?.setAttribute('src', logo); + const form = document.querySelector('form'); + const sendCodeButton = document.querySelector('.button'); + const submitButton = document.querySelector('.submit-button'); + const errorContainer = document.querySelector('.error-message'); + + let verificationId = ''; + + sendCodeButton?.addEventListener('click', async (event) => { + event.preventDefault(); + if (!form) { + return; + } + + const email = new FormData(form).get('email')?.toString(); + + try { + if (!email) { + throw new Error('Email is required.'); + } + + sendCodeButton.setAttribute('disabled', 'disabled'); + sendCodeButton.innerHTML = `Resend (in ${defaultResendCodeTimeout}s)`; + + let timeoutId = -1; + let remainingSeconds = defaultResendCodeTimeout - 1; + + const countDown = () => { + timeoutId = window.setTimeout(() => { + if (remainingSeconds > 0) { + sendCodeButton.innerHTML = `Resend (in ${remainingSeconds}s)`; + remainingSeconds--; + countDown(); + } else { + window.clearTimeout(timeoutId); + sendCodeButton.innerHTML = 'Resend'; + sendCodeButton.removeAttribute('disabled'); + } + }, 1000); + }; + + countDown(); + + await api.experience.initInteraction( + { interactionEvent: InteractionEvent.Register }, + { format: 'json' } + ); + const { verificationId: id } = await api.experience.createAndSendVerificationCode({ + identifier: { type: 'email', value: email }, + interactionEvent: InteractionEvent.Register, + }); + + verificationId = id; + } catch (error) { + handleError(error); + } + }); + + form?.addEventListener('submit', async (event) => { + event.preventDefault(); + errorContainer?.classList.remove('hidden'); + const formData = new FormData(form); + const email = formData.get('email')?.toString(); + const verificationCode = formData.get('verification-code')?.toString(); + + try { + submitButton?.setAttribute('disabled', 'disabled'); + submitButton?.classList.add('loading'); + + if (!email || !verificationCode) { + throw new Error('Email and verification code are required.'); + } + + await api.experience.verifyVerificationCodeVerification( + { + identifier: { type: 'email', value: email }, + verificationId, + code: verificationCode, + }, + { format: 'json' } + ); + + await api.experience.identifyUser({ verificationId }); + + const { redirectTo } = await api.experience.submitInteraction({ format: 'json' }); + window.location.replace(redirectTo); + } catch (error) { + handleError(error); + } + }); +}); + +const handleError = (error: unknown) => { + const errorContainer = document.querySelector('.error-message'); + const submitButton = document.querySelector('.submit-button'); + + console.error(error); + if (errorContainer) { + errorContainer.classList.remove('hidden'); + errorContainer.innerHTML = + error instanceof Error + ? error.message + : 'Error occurred. Please check debugger console for details.'; + } + + submitButton?.removeAttribute('disabled'); + submitButton?.classList.remove('loading'); +}; diff --git a/packages/sign-up-with-verification-code/tsconfig.json b/packages/sign-up-with-verification-code/tsconfig.json new file mode 100644 index 0000000..b962e88 --- /dev/null +++ b/packages/sign-up-with-verification-code/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@silverhand/ts-config/tsconfig.base", + "compilerOptions": { + "baseUrl": "./", + "outDir": "dist", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d11e42..988686a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,6 +117,39 @@ importers: specifier: ^5.4.0 version: 5.4.6(@types/node@22.3.0)(sass-embedded@1.77.8) + packages/sign-up-with-verification-code: + devDependencies: + '@logto/experience-sample-shared': + specifier: workspace:^ + version: link:../shared + '@logto/schemas': + specifier: ^1.19.0 + version: 1.19.0(zod@3.23.8) + '@silverhand/eslint-config': + specifier: ^6.0.1 + version: 6.0.1(eslint@8.57.0)(prettier@3.3.3)(typescript@5.5.4) + '@silverhand/ts-config': + specifier: ^6.0.0 + version: 6.0.0(typescript@5.5.4) + eslint: + specifier: ^8.56.0 + version: 8.57.0 + lint-staged: + specifier: ^15.0.0 + version: 15.2.9 + prettier: + specifier: ^3.0.0 + version: 3.3.3 + stylelint: + specifier: ^15.0.0 + version: 15.11.0(typescript@5.5.4) + typescript: + specifier: ^5.5.3 + version: 5.5.4 + vite: + specifier: ^5.4.0 + version: 5.4.6(@types/node@22.3.0)(sass-embedded@1.77.8) + packages: '@babel/code-frame@7.24.7': @@ -3273,10 +3306,10 @@ snapshots: eslint-config-prettier: 9.1.0(eslint@8.57.0) eslint-config-xo: 0.44.0(eslint@8.57.0) eslint-config-xo-typescript: 4.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-consistent-default-export-name: 0.0.15 eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-n: 17.10.2(eslint@8.57.0) eslint-plugin-no-use-extend-native: 0.5.0 eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) @@ -3963,13 +3996,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 4.3.6 enhanced-resolve: 5.17.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -3980,14 +4013,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -4009,7 +4042,7 @@ snapshots: eslint: 8.57.0 ignore: 5.3.2 - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4019,7 +4052,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 From 96b55e6d3526d32e770460c334a00bc9b6d3e641 Mon Sep 17 00:00:00 2001 From: Charles Zhao Date: Wed, 23 Oct 2024 19:45:24 +0800 Subject: [PATCH 2/3] refactor: improve code --- .../sign-up-with-verification-code/dist.zip | Bin 57360 -> 0 bytes .../sign-up-with-verification-code/index.html | 2 +- .../src/index.ts | 70 ++++++++---------- 3 files changed, 31 insertions(+), 41 deletions(-) delete mode 100644 packages/sign-up-with-verification-code/dist.zip diff --git a/packages/sign-up-with-verification-code/dist.zip b/packages/sign-up-with-verification-code/dist.zip deleted file mode 100644 index 66ad1f54f8d46e992ae48be5d8b73e4f3fd4b9e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57360 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 diff --git a/packages/sign-up-with-verification-code/index.html b/packages/sign-up-with-verification-code/index.html index 1cb1373..9e4ae90 100644 --- a/packages/sign-up-with-verification-code/index.html +++ b/packages/sign-up-with-verification-code/index.html @@ -12,7 +12,7 @@
- +
diff --git a/packages/sign-up-with-verification-code/src/index.ts b/packages/sign-up-with-verification-code/src/index.ts index 437cbda..c24caca 100644 --- a/packages/sign-up-with-verification-code/src/index.ts +++ b/packages/sign-up-with-verification-code/src/index.ts @@ -1,5 +1,5 @@ -import { Api } from '@logto/experience-sample-shared/api'; -import logo from '@logto/experience-sample-shared/assets/logto-logo-light.svg'; +import { Api } from '@logto/experience-sample-shared'; +import { clearError, handleError, setSubmitLoading } from '@logto/experience-sample-shared/utils'; import { InteractionEvent } from '@logto/schemas'; import '@logto/experience-sample-shared/scss/normalized.scss'; @@ -8,11 +8,8 @@ const defaultResendCodeTimeout = 60; const api = new Api({ baseUrl: window.location.origin }); window.addEventListener('load', () => { - document.querySelector('.logo')?.setAttribute('src', logo); const form = document.querySelector('form'); const sendCodeButton = document.querySelector('.button'); - const submitButton = document.querySelector('.submit-button'); - const errorContainer = document.querySelector('.error-message'); let verificationId = ''; @@ -51,15 +48,20 @@ window.addEventListener('load', () => { countDown(); - await api.experience.initInteraction( - { interactionEvent: InteractionEvent.Register }, - { format: 'json' } - ); + /** + * Step 1: Initialize a register type interaction. + */ + await api.experience.initInteraction({ interactionEvent: InteractionEvent.Register }); + + /** + * Step 2: Create a verification record and send out the verification code. + */ const { verificationId: id } = await api.experience.createAndSendVerificationCode({ identifier: { type: 'email', value: email }, interactionEvent: InteractionEvent.Register, }); + // Save the verificationId for later use. verificationId = id; } catch (error) { handleError(error); @@ -68,30 +70,35 @@ window.addEventListener('load', () => { form?.addEventListener('submit', async (event) => { event.preventDefault(); - errorContainer?.classList.remove('hidden'); - const formData = new FormData(form); - const email = formData.get('email')?.toString(); - const verificationCode = formData.get('verification-code')?.toString(); + setSubmitLoading(true); + clearError(); try { - submitButton?.setAttribute('disabled', 'disabled'); - submitButton?.classList.add('loading'); + const formData = new FormData(form); + const email = formData.get('email')?.toString(); + const verificationCode = formData.get('verification-code')?.toString(); if (!email || !verificationCode) { throw new Error('Email and verification code are required.'); } - await api.experience.verifyVerificationCodeVerification( - { - identifier: { type: 'email', value: email }, - verificationId, - code: verificationCode, - }, - { format: 'json' } - ); + /** + * Step 3: Verify the verification code. + */ + await api.experience.verifyVerificationCodeVerification({ + identifier: { type: 'email', value: email }, + verificationId, + code: verificationCode, + }); + /** + * Step 4: Identify the user. + */ await api.experience.identifyUser({ verificationId }); + /** + * Step 5: Submit the interaction and redirect back to your app after the interaction is completed. + */ const { redirectTo } = await api.experience.submitInteraction({ format: 'json' }); window.location.replace(redirectTo); } catch (error) { @@ -99,20 +106,3 @@ window.addEventListener('load', () => { } }); }); - -const handleError = (error: unknown) => { - const errorContainer = document.querySelector('.error-message'); - const submitButton = document.querySelector('.submit-button'); - - console.error(error); - if (errorContainer) { - errorContainer.classList.remove('hidden'); - errorContainer.innerHTML = - error instanceof Error - ? error.message - : 'Error occurred. Please check debugger console for details.'; - } - - submitButton?.removeAttribute('disabled'); - submitButton?.classList.remove('loading'); -}; From 8f49b1170a2159ca9a5ea3ff081d17c9c8455b15 Mon Sep 17 00:00:00 2001 From: Charles Zhao Date: Wed, 23 Oct 2024 20:00:59 +0800 Subject: [PATCH 3/3] refactor: improve code --- .../src/index.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/sign-up-with-verification-code/src/index.ts b/packages/sign-up-with-verification-code/src/index.ts index c24caca..aa73e72 100644 --- a/packages/sign-up-with-verification-code/src/index.ts +++ b/packages/sign-up-with-verification-code/src/index.ts @@ -94,7 +94,25 @@ window.addEventListener('load', () => { /** * Step 4: Identify the user. */ - await api.experience.identifyUser({ verificationId }); + try { + await api.experience.identifyUser({ verificationId }); + } catch { + /** + * If the user is already registered yet, this API will returned an error with code 'user.email_already_in_use'. + * + * In this case, you have two options: + * 1. Show the error and redirect the user to the sign-in page. + * 2. Prompt the user for auto-sign-in and continue the flow. + * + * Example code for auto-sign-in: + * -------------------------------------------- + * // Update the interaction event to 'SignIn'. + * await api.experience.updateInteractionEvent({ interactionEvent: InteractionEvent.SignIn }); + * + * // Identify the user again. + * await api.experience.identifyUser({ verificationId }); + */ + } /** * Step 5: Submit the interaction and redirect back to your app after the interaction is completed.