Them trang Admin sinh JSON va chong Cache

This commit is contained in:
phuongtc
2026-04-06 11:09:21 +07:00
parent 5bc6803772
commit b883338d48
4 changed files with 222 additions and 6 deletions

View File

@@ -1,4 +1,5 @@
import { useState, useEffect, useMemo } from 'react';
import Admin from './Admin'; // <-- THÊM DÒNG IMPORT NÀY
// Định nghĩa kiểu dữ liệu cho Video bài tập
interface ExerciseVideo {
@@ -9,15 +10,16 @@ interface ExerciseVideo {
youtube_id: string;
}
function App() {
// BƯỚC 1: Đổi tên App cũ của bạn thành MainApp
function MainApp() {
const [videos, setVideos] = useState<ExerciseVideo[]>([]);
const [selectedVideo, setSelectedVideo] = useState<ExerciseVideo | null>(null);
const [activeCategory, setActiveCategory] = useState<string>('All');
const [loading, setLoading] = useState<boolean>(true);
// Lấy dữ liệu từ file data.json
// Lấy dữ liệu từ thư mục con /data/ và chống Cache
useEffect(() => {
fetch('/data.json')
fetch('/data/data.json?t=' + new Date().getTime())
.then((res) => res.json())
.then((data: ExerciseVideo[]) => {
setVideos(data);
@@ -140,4 +142,15 @@ function App() {
);
}
export default App;
// BƯỚC 2: Tạo App mới làm người gác cổng kiểm tra URL
function App() {
const isAdmin = window.location.search.includes('admin=true');
if (isAdmin) {
return <Admin />;
}
return <MainApp />;
}
export default App;