<script setup>
import { onMounted, ref } from 'vue'
import { createSignal } from '@signal-js/browser'
let signal = null
const anonymousId = ref(null)
onMounted(async () => {
signal = createSignal({ endpoint: '...', apiKey: '...', projectId: '...' })
await signal.start()
// Store anonymous ID before login
const stored = localStorage.getItem('anonymous_id')
if (stored) {
anonymousId.value = stored
}
})
function handleLogin(userId, userTraits) {
// Identify the user
signal?.identify(userId, userTraits)
// Link anonymous ID if it exists
if (anonymousId.value) {
signal?.alias(anonymousId.value)
localStorage.removeItem('anonymous_id')
}
}
</script>
<template>
<button @click="handleLogin('user_123', { email: 'user@example.com' })">
Log in
</button>
</template>