diff --git a/js/src/autoplay/AutoplayApp.tsx b/js/src/autoplay_window/AutoplayApp.tsx similarity index 54% rename from js/src/autoplay/AutoplayApp.tsx rename to js/src/autoplay_window/AutoplayApp.tsx index b3cab74..89a3ea4 100644 --- a/js/src/autoplay/AutoplayApp.tsx +++ b/js/src/autoplay_window/AutoplayApp.tsx @@ -1,14 +1,21 @@ -import { useEffect, useState } from 'react'; +import { useCallback, useEffect, useRef, useState } from 'react'; import { X } from 'lucide-react'; import type { AutoplayPayload } from '@/lib/autoplay-ipc'; export function AutoplayApp() { const [payload, setPayload] = useState(null); + const mediaRef = useRef(null); useEffect(() => { return window.electronAutoplay.onPlay((p) => setPayload(p)); }, []); + const stop = useCallback(() => { + mediaRef.current?.pause(); + setPayload(null); + window.electronAutoplay.dismiss(); + }, []); + if (!payload) { return
; } @@ -16,6 +23,7 @@ export function AutoplayApp() { const isVideo = payload.mimeType.startsWith('video/'); const handleClick = () => { + mediaRef.current?.pause(); window.electronAutoplay.navigate({ networkId: payload.networkId, streamId: payload.streamId, @@ -24,65 +32,63 @@ export function AutoplayApp() { const handleClose = (e: React.MouseEvent) => { e.stopPropagation(); - setPayload(null); - window.electronAutoplay.dismiss(); - }; - - const handleEnded = () => { - setPayload(null); - window.electronAutoplay.dismiss(); + stop(); }; return (
{isVideo ? ( -
- + <>
- ) : ( -
-
- {payload.senderInitials} +
+
+ {payload.senderInitials} +
+

{payload.senderName}

-
-

{payload.senderName}

-

Playing audio...

+ + ) : ( + <> + +
+
+ {payload.senderInitials} +
+
+

{payload.senderName}

+

Playing audio...

+
+ )}
); diff --git a/js/src/autoplay_window/index.html b/js/src/autoplay_window/index.html index 648a97a..2dcab0c 100644 --- a/js/src/autoplay_window/index.html +++ b/js/src/autoplay_window/index.html @@ -3,9 +3,6 @@ llink - Autoplay -
diff --git a/js/src/autoplay_window/renderer.tsx b/js/src/autoplay_window/renderer.tsx index ba5267b..263518d 100644 --- a/js/src/autoplay_window/renderer.tsx +++ b/js/src/autoplay_window/renderer.tsx @@ -1,5 +1,5 @@ import { createRoot } from 'react-dom/client'; -import { AutoplayApp } from '@/autoplay/AutoplayApp'; +import { AutoplayApp } from './AutoplayApp'; import '@/styles/globals.css'; const root = createRoot(document.getElementById('root')!); diff --git a/js/src/main.ts b/js/src/main.ts index f8366b2..a513c3c 100644 --- a/js/src/main.ts +++ b/js/src/main.ts @@ -64,8 +64,6 @@ const createAutoplayWindow = () => { skipTaskbar: true, focusable: false, show: false, - transparent: true, - hasShadow: false, webPreferences: { preload: path.join(__dirname, 'preload.js'), },