refactor: 남은 Admin 페이지 API 모듈 적용 완료
- AdminAlbums API 모듈 적용 총 적용 완료: - Public 페이지: 7개 (PC 6 + 모바일 1) - Admin 페이지: 7개 (Schedule, ScheduleBots, ScheduleCategory, Login, Dashboard, Albums, Schedule)
This commit is contained in:
parent
fbb68e66ee
commit
f006309ef4
1 changed files with 17 additions and 31 deletions
|
|
@ -7,6 +7,9 @@ import {
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import Toast from '../../../components/Toast';
|
import Toast from '../../../components/Toast';
|
||||||
import Tooltip from '../../../components/Tooltip';
|
import Tooltip from '../../../components/Tooltip';
|
||||||
|
import * as authApi from '../../../api/admin/auth';
|
||||||
|
import { getAlbums } from '../../../api/public/albums';
|
||||||
|
import * as albumsApi from '../../../api/admin/albums';
|
||||||
|
|
||||||
function AdminAlbums() {
|
function AdminAlbums() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
@ -28,34 +31,28 @@ function AdminAlbums() {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// 로그인 확인
|
// 로그인 확인
|
||||||
const token = localStorage.getItem('adminToken');
|
if (!authApi.hasToken()) {
|
||||||
const userData = localStorage.getItem('adminUser');
|
|
||||||
|
|
||||||
if (!token || !userData) {
|
|
||||||
navigate('/admin');
|
navigate('/admin');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setUser(JSON.parse(userData));
|
setUser(authApi.getCurrentUser());
|
||||||
fetchAlbums();
|
fetchAlbums();
|
||||||
}, [navigate]);
|
}, [navigate]);
|
||||||
|
|
||||||
const fetchAlbums = () => {
|
const fetchAlbums = async () => {
|
||||||
fetch('/api/albums')
|
try {
|
||||||
.then(res => res.json())
|
const data = await getAlbums();
|
||||||
.then(data => {
|
|
||||||
setAlbums(data);
|
setAlbums(data);
|
||||||
setLoading(false);
|
} catch (error) {
|
||||||
})
|
|
||||||
.catch(error => {
|
|
||||||
console.error('앨범 로드 오류:', error);
|
console.error('앨범 로드 오류:', error);
|
||||||
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
});
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleLogout = () => {
|
const handleLogout = () => {
|
||||||
localStorage.removeItem('adminToken');
|
authApi.logout();
|
||||||
localStorage.removeItem('adminUser');
|
|
||||||
navigate('/admin');
|
navigate('/admin');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -64,21 +61,10 @@ function AdminAlbums() {
|
||||||
|
|
||||||
setDeleting(true);
|
setDeleting(true);
|
||||||
try {
|
try {
|
||||||
const token = localStorage.getItem('adminToken');
|
await albumsApi.deleteAlbum(deleteDialog.album.id);
|
||||||
const response = await fetch(`/api/admin/albums/${deleteDialog.album.id}`, {
|
|
||||||
method: 'DELETE',
|
|
||||||
headers: {
|
|
||||||
'Authorization': `Bearer ${token}`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error('삭제 실패');
|
|
||||||
}
|
|
||||||
|
|
||||||
setToast({ message: `"${deleteDialog.album.title}" 앨범이 삭제되었습니다.`, type: 'success' });
|
setToast({ message: `"${deleteDialog.album.title}" 앨범이 삭제되었습니다.`, type: 'success' });
|
||||||
setDeleteDialog({ show: false, album: null });
|
setDeleteDialog({ show: false, album: null });
|
||||||
fetchAlbums(); // 목록 새로고침
|
fetchAlbums();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('삭제 오류:', error);
|
console.error('삭제 오류:', error);
|
||||||
setToast({ message: '앨범 삭제 중 오류가 발생했습니다.', type: 'error' });
|
setToast({ message: '앨범 삭제 중 오류가 발생했습니다.', type: 'error' });
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue