diff --git a/frontend/src/auth/admin.tsx b/frontend/src/auth/admin.tsx index d7e8545a952541f94b14a4bae8a9d2373296c1f2..15bb7d867cfef9621971770f3971c2496d869387 100644 --- a/frontend/src/auth/admin.tsx +++ b/frontend/src/auth/admin.tsx @@ -2,18 +2,18 @@ import React, { FormEvent, useEffect, useState } from "react"; import { mainimgApi } from "../apis"; import { catchErrors } from "../helpers"; import { MainimgType } from "../types"; - +import {MySlide} from "./adminslide"; export default function Admin() { const [getimgs, setGetimgs] = useState([]); - + async function imgsData() { const imgs = await mainimgApi.getmainimg(); - console.log("ㅑㅡㅎ", imgs) + // console.log("ㅑㅡㅎ", imgs) setGetimgs(imgs) }; - + useEffect(() => { imgsData(); }, []); @@ -37,7 +37,7 @@ export default function Admin() { setAddimg({ ...addimg, [name]: value }); } - console.log("asdafsdfs", getimgs) + // console.log("asdafsdfs", getimgs) async function handleSubmit(event: FormEvent) { event.preventDefault(); try { @@ -58,9 +58,28 @@ export default function Admin() { if (success) { alert("img 추가되었습니다"); - } + let limit = 15; + const numPages = Math.ceil(getimgs.length / 15); + + const slides = [] + for (let i = 0; i < numPages; i++) { + const k = [ + getimgs.slice(i * limit, i * limit + limit).map((pic, index: number) => ( +
+ +

{pic.title}

+
+ ))] + slides.push(k); + } + return (
- {getimgs.map((img, index: number) => ( -
- - -
) - )} - +
+ +
); }; diff --git a/frontend/src/auth/adminslide.tsx b/frontend/src/auth/adminslide.tsx new file mode 100644 index 0000000000000000000000000000000000000000..cf9e085440229d23265508ca4b5e5eacc945a4cb --- /dev/null +++ b/frontend/src/auth/adminslide.tsx @@ -0,0 +1,65 @@ +import React, { useRef, useState } from "react"; + +type num = { + slides: any[], +} + +export function MySlide({ slides}: num) { + + const firstLeftClick = useRef(true); + const firstRightClick = useRef(true); + const [page, setPage] = useState(1); + const [slide,setSlide] = useState(1); + // const slide = useRef(1); + const [style, setStyle] = useState(""); + + const leftClick = () => { + if (firstLeftClick.current) { + firstLeftClick.current = false; + firstRightClick.current = true; + } else { + setPage(page - 1) + } + // slide.current -= 1; + setSlide(slide-1) + setStyle("-translate-x-full animate-slidetoright"); + }; + + const rightClick = () => { + if (firstRightClick.current) { + firstLeftClick.current = true; + firstRightClick.current = false; + } else { + setPage(page + 1) + } + // slide.current += 1; + setSlide(slide+1) + setStyle("animate-slidetoleft"); + }; + + return ( +
+ +
+ {slides.slice(page - 1, page + 2).map((slide) => ( +
+
+ {slide} +
+
+ ))} +
+ +
+ + + ); +};