Files
ratebubble/frontend/vite.config.ts
szbk c0841aab20 feat(frontend): admin dashboard + içerik kataloğu UI, realtime sync
- index.css: IBM Plex Sans + Bricolage Grotesque font'ları import edildi;
  CSS custom property sistemi (--bg-base, --accent-main vb.) tanımlandı;
  body'ye fixed radial gradient + grid overlay arka plan eklendi.

- main.tsx: MantineProvider tema güncellendi — IBM Plex Sans/Bricolage
  Grotesque font ailesi, responsive heading boyutları, özel radius/shadow
  değerleri ayarlandı.

- App.css: Gereksiz yorum temizlendi, stil yönetimi route-level CSS'e taşındı.

- MoviesPage.tsx (büyük güncelleme):
  • Katalog görünümü: film/dizi grid, arama, sıralama, backdrop modal.
  • Admin Dashboard görünümü: cache özeti, content istatistikleri, job
    durum sayaçları, failed job listesi, cache expiry tablosu, metrics
    (hit/miss oranı, kaynak dağılımı).
  • Admin aksiyonlar: cache temizleme, cache ısıtma, başarısız job
    yeniden kuyruklama, eski içerik yenileme.
  • Socket.IO entegrasyonu: content:event dinlenerek katalog anlık
    güncelleniyor; metrics:updated ile dashboard metrikleri canlı akıyor.
  • Reconnect davranışı: bağlantı kopunca her görünüm kendi snapshot'ını
    otomatik yeniliyor.

- movies-page.css (yeni): MoviesPage'e özel kart, backdrop, istatistik
  kutusu ve animasyon stilleri.

- vite.config.ts: /socket.io proxy kuralı eklendi (ws: true) — dev
  sunucusu üzerinden WebSocket bağlantısı backend'e yönlendiriliyor.

- frontend/.env.example (yeni): VITE_API_BASE_URL, VITE_WEB_API_KEY,
  VITE_ADMIN_API_KEY değişken şablonu eklendi.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 12:00:22 +03:00

27 lines
499 B
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// https://vite.dev/config/
export default defineConfig({
plugins: [react()],
server: {
port: 5173,
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true,
},
'/socket.io': {
target: 'http://localhost:3000',
changeOrigin: true,
ws: true,
},
},
},
css: {
modules: {
localsConvention: 'camelCase',
},
},
})