Enhance video platform with real-time updates and refined visual elements

Improve video view count refresh rates and update PWA manifest and app icon visuals.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 2cd2c0bc-434c-4bc9-ad3f-b99d3897a0d1
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8cc42625-c1f5-4e43-99bd-77f2c4dedee2/2cd2c0bc-434c-4bc9-ad3f-b99d3897a0d1/3dnI7Tc
This commit is contained in:
sebastjanartic 2025-09-03 13:22:45 +00:00
parent 2bd60f3e00
commit 59db5be03f
6 changed files with 15 additions and 10 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

BIN
client/public/app-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

View File

@ -6,8 +6,10 @@
"background_color": "#2D1B69",
"display": "standalone",
"orientation": "portrait-primary",
"start_url": "/",
"start_url": "/?utm_source=pwa",
"scope": "/",
"cache": "no-cache",
"fetch_scheme": "https",
"lang": "en",
"dir": "ltr",
"categories": ["entertainment", "multimedia"],

View File

@ -75,6 +75,10 @@ export default function VideoPage() {
enabled: !!videoId,
retry: 3,
retryDelay: 1000,
// Real-time refresh for view counts - refresh every 30 seconds
refetchInterval: 30000,
refetchOnWindowFocus: true,
refetchOnReconnect: true,
});
// Fetch recommended videos (excluding current video)

View File

@ -42,8 +42,10 @@ export default function Home() {
},
staleTime: 5 * 60 * 1000,
gcTime: 10 * 60 * 1000,
refetchOnWindowFocus: false,
refetchOnReconnect: false
refetchOnWindowFocus: true,
refetchOnReconnect: true,
// Real-time refresh for view counts - refresh every 30 seconds
refetchInterval: 30000
});
// Update videos when new data comes in

View File

@ -825,11 +825,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
<!-- iOS stil ozadje z rounded corners -->
<rect x="0" y="0" width="${size}" height="${size}" rx="${cornerRadius * 1.5}" fill="url(#logoGradient)"/>
<!-- Bel play triangle v sredini -->
<polygon points="${padding + logoSize * 0.35},${padding + logoSize * 0.25} ${padding + logoSize * 0.35},${padding + logoSize * 0.75} ${padding + logoSize * 0.65},${padding + logoSize * 0.5}" fill="white" opacity="0.95"/>
<!-- go4 besedilo pod trikotnikom -->
${size >= 120 ? `<text x="${size/2}" y="${size * 0.8}" font-family="Arial, sans-serif" font-size="${size * 0.12}" font-weight="bold" fill="white" text-anchor="middle" opacity="0.9">go4</text>` : ''}
<!-- Večji bel play triangle v središču ikone -->
<polygon points="${size * 0.38},${size * 0.32} ${size * 0.38},${size * 0.68} ${size * 0.68},${size * 0.5}" fill="white" opacity="1.0"/>
</svg>`;
// Pretvorimo SVG v PNG z Sharp
@ -853,8 +850,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
<!-- Logo background -->
<rect x="${padding}" y="${padding}" width="${logoSize}" height="${logoSize}" rx="${cornerRadius}" fill="url(#logoGradient)"/>
<!-- Play triangle -->
<polygon points="${padding + logoSize * 0.35},${padding + logoSize * 0.25} ${padding + logoSize * 0.35},${padding + logoSize * 0.75} ${padding + logoSize * 0.65},${padding + logoSize * 0.5}" fill="white"/>
<!-- Večji play triangle v središču -->
<polygon points="${size * 0.38},${size * 0.32} ${size * 0.38},${size * 0.68} ${size * 0.68},${size * 0.5}" fill="white"/>
</svg>`;
res.setHeader('Content-Type', 'image/svg+xml');