앨범 관리
앨범, 트랙, 사진을 관리합니다
| 앨범 | 타입 | 발매일 | 트랙 | 관리 |
{album.title} |
{album.album_type} |
|
|
|
|---|
import { useState, useEffect } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { motion } from 'framer-motion'; import { Plus, Search, Edit2, Trash2, Image, Music, Home, ChevronRight, LogOut, Calendar } from 'lucide-react'; function AdminAlbums() { const navigate = useNavigate(); const [albums, setAlbums] = useState([]); const [loading, setLoading] = useState(true); const [searchQuery, setSearchQuery] = useState(''); const [user, setUser] = useState(null); useEffect(() => { // 로그인 확인 const token = localStorage.getItem('adminToken'); const userData = localStorage.getItem('adminUser'); if (!token || !userData) { navigate('/admin'); return; } setUser(JSON.parse(userData)); // 앨범 목록 로드 fetch('/api/albums') .then(res => res.json()) .then(data => { setAlbums(data); setLoading(false); }) .catch(error => { console.error('앨범 로드 오류:', error); setLoading(false); }); }, [navigate]); const handleLogout = () => { localStorage.removeItem('adminToken'); localStorage.removeItem('adminUser'); navigate('/admin'); }; // 날짜 포맷팅 const formatDate = (dateStr) => { if (!dateStr) return ''; const date = new Date(dateStr); return `${date.getFullYear()}.${String(date.getMonth() + 1).padStart(2, '0')}.${String(date.getDate()).padStart(2, '0')}`; }; // 검색 필터링 const filteredAlbums = albums.filter(album => album.title.toLowerCase().includes(searchQuery.toLowerCase()) ); return (
앨범, 트랙, 사진을 관리합니다
| 앨범 | 타입 | 발매일 | 트랙 | 관리 |
{album.title} |
{album.album_type} |
|
|
|
|---|