Fix: Stream in gleichem Fenster öffnen + Update-Dialog Abbrechen-Button

- Stream-Tile Klick öffnet Join-Modal statt neues Fenster
- checkForUpdates optional chaining für alte Electron App
- Abbrechen-Button im Update-Check Dialog
- 15s Timeout falls Electron nicht antwortet

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-07 14:57:41 +01:00
parent 83a8382a6c
commit fa4b379a90
2 changed files with 9 additions and 2 deletions

View file

@ -106,7 +106,11 @@ export default function App() {
const handleCheckForUpdates = () => { const handleCheckForUpdates = () => {
setUpdateState('checking'); setUpdateState('checking');
(window as any).electronAPI?.checkForUpdates(); (window as any).electronAPI?.checkForUpdates?.();
// Timeout: falls Electron nicht antwortet, nach 15s zurücksetzen
setTimeout(() => {
setUpdateState(prev => prev === 'checking' ? 'error' : prev);
}, 15000);
}; };
// Tab icon mapping // Tab icon mapping
@ -181,6 +185,9 @@ export default function App() {
<div className="hub-update-progress"> <div className="hub-update-progress">
<div className="hub-update-progress-bar" /> <div className="hub-update-progress-bar" />
</div> </div>
<button className="hub-update-btn" onClick={() => setUpdateState('idle')}>
Abbrechen
</button>
</> </>
)} )}
{updateState === 'downloading' && ( {updateState === 'downloading' && (

View file

@ -611,7 +611,7 @@ export default function StreamingTab({ data }: { data: any }) {
{streams {streams
.filter(s => s.id !== myStreamId) .filter(s => s.id !== myStreamId)
.map(s => ( .map(s => (
<div key={s.id} className="stream-tile" onClick={() => openInNewWindow(s.id)}> <div key={s.id} className="stream-tile" onClick={() => openJoinModal(s)}>
<div className="stream-tile-preview"> <div className="stream-tile-preview">
<span className="stream-tile-icon">{'\u{1F5A5}\uFE0F'}</span> <span className="stream-tile-icon">{'\u{1F5A5}\uFE0F'}</span>
<span className="stream-live-badge"><span className="stream-live-dot" /> LIVE</span> <span className="stream-live-badge"><span className="stream-live-dot" /> LIVE</span>