diff --git a/web/src/lib/components/ServerAboutItem.svelte b/web/src/lib/components/ServerAboutItem.svelte
new file mode 100644
index 0000000000..9e169a9839
--- /dev/null
+++ b/web/src/lib/components/ServerAboutItem.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+ {#if versionHref}
+ {version}
+ {:else}
+ {version}
+ {/if}
+
+
diff --git a/web/src/lib/components/shared-components/change-date.spec.ts b/web/src/lib/components/shared-components/change-date.spec.ts
index 43035051f3..63926a44a6 100644
--- a/web/src/lib/components/shared-components/change-date.spec.ts
+++ b/web/src/lib/components/shared-components/change-date.spec.ts
@@ -1,6 +1,6 @@
import { getIntersectionObserverMock } from '$lib/__mocks__/intersection-observer.mock';
import { getVisualViewportMock } from '$lib/__mocks__/visual-viewport.mock';
-import { fireEvent, render, screen } from '@testing-library/svelte';
+import { fireEvent, render, screen, waitFor } from '@testing-library/svelte';
import userEvent from '@testing-library/user-event';
import { DateTime } from 'luxon';
import ChangeDate from './change-date.svelte';
@@ -30,6 +30,13 @@ describe('ChangeDate component', () => {
vi.resetAllMocks();
});
+ afterAll(async () => {
+ await waitFor(() => {
+ // check that bits-ui body scroll-lock class is gone
+ expect(document.body.style.pointerEvents).not.toBe('none');
+ });
+ });
+
test('should render correct values', () => {
render(ChangeDate, { initialDate, initialTimeZone, onCancel, onConfirm });
expect(getDateInput().value).toBe('2024-01-01T00:00');
diff --git a/web/src/lib/modals/ServerAboutModal.svelte b/web/src/lib/modals/ServerAboutModal.svelte
index 99967e7588..92bbac3d67 100644
--- a/web/src/lib/modals/ServerAboutModal.svelte
+++ b/web/src/lib/modals/ServerAboutModal.svelte
@@ -1,8 +1,8 @@