/
sigma
/
Acloud
Обзор
Документация
Войти
/
sigma
/
Acloud
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/components/FileList/index.tsx
48 строк
1 KB
Александр Пимкин
first_commit
17 апр 2025, 11:39
17 апр 2025, 11:39
e24d434
Код
Авторство
О чём код?
import { FileItem } from '@/api/dto/files.dto' import { FC } from 'react' import Selecto from 'react-selecto' import { FileCard } from '../FileCard' export type FileSelectType = 'select' | 'unselect' interface FileListProps { items: FileItem[] onFileSelect: (id: number, type: FileSelectType) => void } export const FileList: FC<FileListProps> = ({ items, onFileSelect }) => { return ( <div style={{ display: 'flex', flexDirection: 'row', flexWrap: 'wrap', padding: '30px 10px', }} > {items.map(item => ( <div data-id={item.id} key={item.id} className='file'> <FileCard filename={item.filename} originalName={item.originalName} /> </div> ))} <Selecto selectableTargets={['.file']} selectByClick hitRate={10} selectFromInside toggleContinueSelect={['shift']} continueSelect={false} onSelect={e => { e.added.forEach(el => { el.classList.add('active') onFileSelect(Number(el.dataset['id']), 'select') }) e.removed.forEach(el => { el.classList.remove('active') onFileSelect(Number(el.dataset['id']), 'unselect') }) }} /> </div> ) }