import React from 'react'; import ListWithSelection from './ListWithSelection.js'; import Util from './Util.js'; export default class AttachList extends ListWithSelection { state = { ...this.state, attachments: [], attachScroll: 0 } addAttachments = (ev) => { let a = this.state.attachments; if (ev.target.files) for (let i = 0; i < ev.target.files.length; i++) a.push(ev.target.files[i]); this.setState({ attachments: a }); // reset file input ev.target.innerHTML = ev.target.innerHTML; } scrollAttachList = (ev) => { this.setState({ attachScroll: ev.target.scrollTop }); } deleteSelected = () => { for (let i = this.state.attachments.length-1; i >= 0; i--) if (this.state.selected[i]) this.state.attachments.splice(i, 1); this.setState({ attachments: this.state.attachments }); } getTotalItems = () => { return this.state.attachments.length; } getPageSize = () => { return this.refs.a0 ? Math.round(this.refs.scroll.offsetHeight / this.refs.a0.offsetHeight) : 1; } getItemOffset = (index) => { let item = this.refs['a'+index]; return [ item.offsetTop, item.offsetHeight ]; } getScrollPaddingTop = () => { return this.refs.title.offsetHeight; } render() { return
Attachment
Size
{this.state.attachments.map((a, i) =>
{a.name}
{Util.formatBytes(a.size)}
)}
} }