diff --git a/src/frontend/src/lib/components/launchpad/Launchpad.svelte b/src/frontend/src/lib/components/launchpad/Launchpad.svelte
index 6584d6400..5b2f67368 100644
--- a/src/frontend/src/lib/components/launchpad/Launchpad.svelte
+++ b/src/frontend/src/lib/components/launchpad/Launchpad.svelte
@@ -4,7 +4,6 @@
import { fade } from 'svelte/transition';
import LaunchpadFirstSatellite from '$lib/components/launchpad/LaunchpadFirstSatellite.svelte';
import LaunchpadSegments from '$lib/components/launchpad/LaunchpadSegments.svelte';
- import ContainerCentered from '$lib/components/ui/ContainerCentered.svelte';
import Message from '$lib/components/ui/Message.svelte';
import Spinner from '$lib/components/ui/Spinner.svelte';
import { satellitesStore } from '$lib/derived/satellites.derived';
@@ -35,11 +34,9 @@
{:else}
-
-
-
-
-
+
{/if}
{:else if ($satellitesStore?.length ?? 0) >= 1}
diff --git a/src/frontend/src/lib/components/launchpad/LaunchpadButton.svelte b/src/frontend/src/lib/components/launchpad/LaunchpadButton.svelte
new file mode 100644
index 000000000..c74adf6fd
--- /dev/null
+++ b/src/frontend/src/lib/components/launchpad/LaunchpadButton.svelte
@@ -0,0 +1,75 @@
+
+
+
+
+
diff --git a/src/frontend/src/lib/components/launchpad/LaunchpadFirstSatellite.svelte b/src/frontend/src/lib/components/launchpad/LaunchpadFirstSatellite.svelte
index 8db032eaf..7ed2c8d95 100644
--- a/src/frontend/src/lib/components/launchpad/LaunchpadFirstSatellite.svelte
+++ b/src/frontend/src/lib/components/launchpad/LaunchpadFirstSatellite.svelte
@@ -1,11 +1,12 @@
-
+
-
diff --git a/src/frontend/src/lib/components/launchpad/LaunchpadGreetings.svelte b/src/frontend/src/lib/components/launchpad/LaunchpadGreetings.svelte
index 9fc1a34ee..6c45e6701 100644
--- a/src/frontend/src/lib/components/launchpad/LaunchpadGreetings.svelte
+++ b/src/frontend/src/lib/components/launchpad/LaunchpadGreetings.svelte
@@ -3,6 +3,12 @@
import IconTerminal from '$lib/components/icons/IconTerminal.svelte';
import { i18n } from '$lib/stores/app/i18n.store';
+ interface Props {
+ withoutReturningLabel?: boolean;
+ }
+
+ let { withoutReturningLabel = false }: Props = $props();
+
const timedGreeting = (): string => {
const hour = getHours(new Date());
@@ -13,7 +19,10 @@
: $i18n.launchpad.good_evening;
};
- const genericGreetings = [$i18n.launchpad.welcome_back, $i18n.launchpad.greetings];
+ let genericGreetings = $derived([
+ ...(withoutReturningLabel ? [] : [$i18n.launchpad.welcome_back]),
+ $i18n.launchpad.greetings
+ ]);
let greetings = $derived([...genericGreetings, timedGreeting()]);
diff --git a/src/frontend/src/lib/components/launchpad/LaunchpadHeader.svelte b/src/frontend/src/lib/components/launchpad/LaunchpadHeader.svelte
new file mode 100644
index 000000000..7718667ec
--- /dev/null
+++ b/src/frontend/src/lib/components/launchpad/LaunchpadHeader.svelte
@@ -0,0 +1,38 @@
+
+
+
+
+
diff --git a/src/frontend/src/lib/components/launchpad/LaunchpadSegments.svelte b/src/frontend/src/lib/components/launchpad/LaunchpadSegments.svelte
index e90cbe4e9..5c5d13eb3 100644
--- a/src/frontend/src/lib/components/launchpad/LaunchpadSegments.svelte
+++ b/src/frontend/src/lib/components/launchpad/LaunchpadSegments.svelte
@@ -1,5 +1,6 @@
-
+
+
+
diff --git a/src/frontend/src/lib/components/launchpad/LaunchpadToolbar.svelte b/src/frontend/src/lib/components/launchpad/LaunchpadToolbar.svelte
index 4eded8de5..852b48fd2 100644
--- a/src/frontend/src/lib/components/launchpad/LaunchpadToolbar.svelte
+++ b/src/frontend/src/lib/components/launchpad/LaunchpadToolbar.svelte
@@ -2,13 +2,10 @@
import { debounce } from '@dfinity/utils';
import { run } from 'svelte/legacy';
import AttachActions from '$lib/components/attach-detach/AttachActions.svelte';
- import LaunchpadGreetings from '$lib/components/launchpad/LaunchpadGreetings.svelte';
import LaunchpadLayout from '$lib/components/launchpad/LaunchpadLayout.svelte';
import LaunchpadNewActions from '$lib/components/launchpad/LaunchpadNewActions.svelte';
import Input from '$lib/components/ui/Input.svelte';
- import { onIntersection } from '$lib/directives/intersection.directives';
import { i18n } from '$lib/stores/app/i18n.store';
- import { onLayoutTitleIntersection } from '$lib/stores/app/layout-intersecting.store';
interface Props {
filter?: string;
@@ -24,36 +21,26 @@
// @ts-expect-error TODO: to be migrated to Svelte v5
(filterInput, debounceUpdateFilter());
});
-
- const customOnIntersection = (element: HTMLElement) =>
- onIntersection(element, {
- threshold: 0.8,
- rootMargin: '-50px 0px'
- });
-