fix: dashboard: add anonid to user's metadata (#3282)
### **PR Type** Enhancement ___ ### **Description** - Add anonymous ID to user metadata during signup - Integrate Segment analytics for anonymous ID retrieval - Update GitHub sign-in to include anonymous ID - Add changeset for version bump and changelog ___ ### **Changes walkthrough** 📝 <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>signup.tsx</strong><dd><code>Integrate anonymous ID in signup process</code> </dd></summary> <hr> dashboard/src/pages/signup.tsx <li>Import Segment analytics<br> <li> Add state for anonymous ID<br> <li> Fetch anonymous ID on component mount<br> <li> Include anonymous ID in email and GitHub signup </details> </td> <td><a href="https://github.com/nhost/nhost/pull/3282/files#diff-fc2b5989e3bbafda1d3d8b2317d24c39ef2b8cec0c4dc410170fa2da13464f68">+19/-1</a> </td> </tr> </table></td></tr><tr><td><strong>Documentation</strong></td><td><table> <tr> <td> <details> <summary><strong>tall-eggs-battle.md</strong><dd><code>Add changeset for dashboard update</code> </dd></summary> <hr> .changeset/tall-eggs-battle.md <li>Add changeset file for version bump<br> <li> Describe change as adding anonid to user's metadata </details> </td> <td><a href="https://github.com/nhost/nhost/pull/3282/files#diff-26ba0d1f688299d031611809f726356bdec0104a9264ec7dcca0757985023a58">+5/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> ___ > <details> <summary> Need help?</summary><li>Type <code>/help how to ...</code> in the comments thread for any questions about PR-Agent usage.</li><li>Check out the <a href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a> for more information.</li></details>
This commit is contained in:
5
.changeset/tall-eggs-battle.md
Normal file
5
.changeset/tall-eggs-battle.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@nhost/dashboard': minor
|
||||
---
|
||||
|
||||
fix: dashboard: add anonid to user's metadata
|
||||
@@ -7,6 +7,7 @@ import { Divider } from '@/components/ui/v2/Divider';
|
||||
import { GitHubIcon } from '@/components/ui/v2/icons/GitHubIcon';
|
||||
import { Input, inputClasses } from '@/components/ui/v2/Input';
|
||||
import { Text } from '@/components/ui/v2/Text';
|
||||
import { analytics } from '@/lib/segment';
|
||||
import { getToastStyleProps } from '@/utils/constants/settings';
|
||||
import { nhost } from '@/utils/nhost';
|
||||
import { yupResolver } from '@hookform/resolvers/yup';
|
||||
@@ -39,6 +40,19 @@ export default function SignUpPage() {
|
||||
const { signUpEmailPassword, error } = useSignUpEmailPassword();
|
||||
const [loading, setLoading] = useState(false);
|
||||
const router = useRouter();
|
||||
const [anonId, setAnonId] = useState<string | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const getAnonId = async () => {
|
||||
try {
|
||||
const user = await analytics.user();
|
||||
setAnonId(user.anonymousId());
|
||||
} catch (err) {
|
||||
console.error('Failed to get anonymous ID:', err);
|
||||
}
|
||||
};
|
||||
getAnonId();
|
||||
}, []);
|
||||
|
||||
// x-cf-turnstile-response
|
||||
const [turnstileResponse, setTurnstileResponse] = useState(null);
|
||||
@@ -85,6 +99,7 @@ export default function SignUpPage() {
|
||||
password,
|
||||
{
|
||||
displayName,
|
||||
metadata: { anonId },
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
@@ -126,7 +141,10 @@ export default function SignUpPage() {
|
||||
setLoading(true);
|
||||
|
||||
try {
|
||||
await nhost.auth.signIn({ provider: 'github' });
|
||||
await nhost.auth.signIn({
|
||||
provider: 'github',
|
||||
options: { metadata: { anonId } },
|
||||
});
|
||||
} catch {
|
||||
toast.error(
|
||||
`An error occurred while trying to sign up using GitHub. Please try again.`,
|
||||
|
||||
Reference in New Issue
Block a user