Skip to content

Commit 0e1a9ea

Browse files
Set Sentry scope user
1 parent cbdf7b2 commit 0e1a9ea

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

src/app.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ declare global {
1414
'account.email': string;
1515
'account.isWaitingForRandomCode': boolean;
1616
'account.isRegistering': boolean;
17+
'currentUser.id': string;
1718
}
1819
}
1920

src/routes/+layout.svelte

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
<script lang="ts">
2-
import { onMount, type Snippet } from 'svelte';
2+
import { type Snippet } from 'svelte';
33
import { t } from 'i18next';
4+
import * as Sentry from '@sentry/sveltekit';
45
import { navigate, Destination } from '$lib/destinations';
56
import { DisplayableError } from '$lib/events';
7+
import { getUsersClient } from '$lib/openapi';
68
import SavedValue from '$lib/components/saved-value.svelte';
79
import EventListener from '$lib/components/event-listener.svelte';
810
import CurrentDestination from '$lib/components/current-destination.svelte';
@@ -17,10 +19,15 @@
1719
let { children }: Props = $props();
1820
1921
let token = $state<string>();
22+
let currentUserId = $state<string>();
2023
let currentDestination = $state(Destination.Feed);
2124
let errors = $state<DisplayableError[]>([]);
2225
let currentError = $state<DisplayableError>();
2326
27+
$effect(() => {
28+
fetchCurrentUser(token);
29+
});
30+
2431
$effect(() => {
2532
if (!token && currentDestination.requiresAuthentication) {
2633
navigate(Destination.Settings);
@@ -39,9 +46,22 @@
3946
currentError = errors[0];
4047
}
4148
}
49+
50+
async function fetchCurrentUser(token?: string) {
51+
if (token) {
52+
const client = await getUsersClient();
53+
let currentUser = await client.getCurrentUser();
54+
currentUserId = currentUser.id;
55+
Sentry.setUser({ id: currentUserId, username: currentUser.username });
56+
} else {
57+
currentUserId = '';
58+
Sentry.setUser(null);
59+
}
60+
}
4261
</script>
4362

4463
<SavedValue name="connection.token" bind:value={token} />
64+
<SavedValue name="currentUser.id" bind:value={currentUserId} />
4565
<EventListener type={DisplayableError} listener={(event) => addError(event.detail)} />
4666
<CurrentDestination bind:destination={currentDestination} />
4767

src/routes/settings/+page.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import SavedValue from '$lib/components/saved-value.svelte';
99
import List from '$lib/components/list.svelte';
1010
import Button from '$lib/components/inputs/button.svelte';
11-
import EditableAvatar from './editable-avatar.svelte';
1211
import TextArea from '$lib/components/inputs/text-area.svelte';
12+
import EditableAvatar from './editable-avatar.svelte';
1313
1414
let isRegistering = $state(false);
1515
let token = $state<string>();

0 commit comments

Comments
 (0)