HL7-6: use sonner component in code
This commit is contained in:
parent
1ca6d97bab
commit
8aeadfd78c
2 changed files with 8 additions and 4 deletions
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import '../app.css';
|
import '../app.css';
|
||||||
import ThemeSelector from '$lib/components/theme-selector.svelte';
|
import ThemeSelector from '$lib/components/theme-selector.svelte';
|
||||||
|
import { Toaster } from '$lib/components/ui/sonner';
|
||||||
import { ModeWatcher } from 'mode-watcher';
|
import { ModeWatcher } from 'mode-watcher';
|
||||||
|
|
||||||
let { children } = $props();
|
let { children } = $props();
|
||||||
|
@ -10,6 +11,8 @@
|
||||||
|
|
||||||
<ModeWatcher/>
|
<ModeWatcher/>
|
||||||
|
|
||||||
|
<Toaster/>
|
||||||
|
|
||||||
<!-- navigation bar -->
|
<!-- navigation bar -->
|
||||||
<header class="sticky top-0 right-0 left-0 flex justify-center z-50 backdrop-blur py-4 px-4 lg:px-8">
|
<header class="sticky top-0 right-0 left-0 flex justify-center z-50 backdrop-blur py-4 px-4 lg:px-8">
|
||||||
<div class="flex items-center justify-between w-full max-w-7xl">
|
<div class="flex items-center justify-between w-full max-w-7xl">
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
import { env } from '$env/dynamic/public';
|
import { env } from '$env/dynamic/public';
|
||||||
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '$lib/components/ui/tooltip';
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '$lib/components/ui/tooltip';
|
||||||
import { dev } from '$app/environment';
|
import { dev } from '$app/environment';
|
||||||
|
import { toast } from 'svelte-sonner';
|
||||||
|
|
||||||
// connection state
|
// connection state
|
||||||
let ws = $state<WebSocket | undefined>(undefined); // websocket client
|
let ws = $state<WebSocket | undefined>(undefined); // websocket client
|
||||||
|
@ -78,6 +79,7 @@
|
||||||
socket.onopen = () => {
|
socket.onopen = () => {
|
||||||
console.log('WebSocket connection established.');
|
console.log('WebSocket connection established.');
|
||||||
ws = socket;
|
ws = socket;
|
||||||
|
isSending = false
|
||||||
};
|
};
|
||||||
|
|
||||||
// register message handlers
|
// register message handlers
|
||||||
|
@ -105,13 +107,15 @@
|
||||||
// our message was successfully delivered
|
// our message was successfully delivered
|
||||||
case MessageType.delivery_success:
|
case MessageType.delivery_success:
|
||||||
sentMessages = [message, ...sentMessages];
|
sentMessages = [message, ...sentMessages];
|
||||||
|
toast.success("Message delivered successfully")
|
||||||
isSending = false
|
isSending = false
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// message from server due to delivery error
|
// message from server due to delivery error
|
||||||
case MessageType.delivery_error:
|
case MessageType.delivery_error:
|
||||||
deliveryError = message.payload.error;
|
deliveryError = message.payload.error;
|
||||||
setTimeout(() => deliveryError = '', 5000); // Clear error after 5 seconds
|
toast.error(deliveryError);
|
||||||
|
isSending = false
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -280,9 +284,6 @@
|
||||||
<SendIcon/>
|
<SendIcon/>
|
||||||
<span>Send Message</span>
|
<span>Send Message</span>
|
||||||
</Button>
|
</Button>
|
||||||
{#if deliveryError}
|
|
||||||
<p class="text-red-600 dark:text-red-400 text-center mt-2">{deliveryError}</p>
|
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
{:else if connectionState === ConnectionState.disconnected}
|
{:else if connectionState === ConnectionState.disconnected}
|
||||||
<div class="flex flex-col items-center justify-center min-h-96 text-foreground/70 space-y-4">
|
<div class="flex flex-col items-center justify-center min-h-96 text-foreground/70 space-y-4">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue