import { DndContext, DragEndEvent } from '@dnd-kit/core'; import { useRef } from 'react'; import { useShallow } from 'zustand/shallow'; import './App.scss'; import { EditTierModal } from './components/EditTierModal'; import { TierImage } from './components/Image'; import { Tier } from './components/Tier'; import { TierModal } from './components/TierModal'; import { tierImage } from './dto/tier'; import useStore from './store'; const App = () => { const [images, addTierImage, tierLevels, editTierImage] = useStore( useShallow(state => [state.images, state.addTierImage, state.tierLevels, state.editTierImage]), ); const uploadBtn = useRef(null); const clickUpload = () => { if (uploadBtn.current) uploadBtn.current.click(); }; const handleAdd = (images: tierImage[]) => { images.forEach(image => { addTierImage(image); }); }; const handleDragEnd = (event: DragEndEvent) => { const { active, over } = event; if (active.data.current && over && over.data.current) { const image: tierImage = active.data.current.image; editTierImage(image, over.data.current.name); } }; return (
{tierLevels.map(tier_level => ( ))}
{images .filter(image => image.category === '') .map((image, index) => ( ))}
Upload { console.log(event.target.files); if (event.target.files) { const upload_images: tierImage[] = []; for (let i = 0; i < event.target.files.length; i++) { const url = URL.createObjectURL(event.target.files[i]); upload_images.push({ url: url, name: event.target.files[i].name.replace('.jpeg', ''), category: '', }); } handleAdd(upload_images); } }} />
); }; export default App;