Fix: Force pull images in deploy workflow
All checks were successful
Build and Push / build-all (push) Successful in 2m6s

This commit is contained in:
doomtube 2026-01-07 00:39:37 -05:00
parent 0bb461498e
commit 99151c6692
4 changed files with 43 additions and 7 deletions

View file

@ -363,11 +363,15 @@
{/if}
{#if hasSelfDestruct && countdownSeconds > 0}
<span class="self-destruct-indicator" title="Self-destructing message">
<svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor">
<path d="M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z"/>
<path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm7-8A7 7 0 1 1 1 8a7 7 0 0 1 14 0z"/>
</svg>
{formatCountdown(countdownSeconds)}
{#if countdownSeconds <= 4}
<img src="/timer.gif" alt="Timer" class="self-destruct-gif" />
{:else}
<svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor">
<path d="M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z"/>
<path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm7-8A7 7 0 1 1 1 8a7 7 0 0 1 14 0z"/>
</svg>
{formatCountdown(countdownSeconds)}
{/if}
</span>
{/if}
@ -656,6 +660,11 @@
animation: pulse 2s ease-in-out infinite;
}
.self-destruct-gif {
height: 16px;
width: auto;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }

View file

@ -1038,6 +1038,15 @@
position: relative;
width: 100%;
}
.sidebar {
height: auto;
max-height: none;
}
.chat-section {
min-height: 400px;
}
}
/* Stream grid layout for multiple streams - Resizable */

View file

@ -6,6 +6,7 @@
import { goto } from '$app/navigation';
import * as pgp from '$lib/pgp';
import GraffitiEditor from '$lib/components/GraffitiEditor.svelte';
import { chatWebSocket } from '$lib/chat/chatWebSocket';
let activeTab = 'profile';
let loading = false;
@ -753,12 +754,29 @@
userColor = result.color;
colorMessage = 'Color updated successfully!';
showColorPicker = false;
// Refresh the current user data to ensure consistency
if (currentUser) {
currentUser = { ...currentUser, userColor: result.color, colorCode: result.color };
}
// Fetch fresh token with updated color and store in localStorage
// This ensures chat reconnects with the new color
try {
const tokenResponse = await fetch('/api/user/token', { credentials: 'include' });
if (tokenResponse.ok) {
const tokenData = await tokenResponse.json();
if (tokenData.token) {
localStorage.setItem('token', tokenData.token);
}
}
} catch (e) {
console.error('Failed to refresh token:', e);
}
// Disconnect chat so it reconnects with fresh auth (new color)
chatWebSocket.disconnect();
// Clear message after 3 seconds
setTimeout(() => { colorMessage = ''; }, 3000);
} else {

BIN
frontend/static/timer.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB