Blame view
imports/ui/components/documents-list.js
1.8 KB
d1f05315d
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import React from 'react'; import { Row, Col, ListGroup, ListGroupItem, Input, Button, Alert } from 'react-bootstrap'; import { updateDocument, removeDocument } from '../../api/documents/methods.js'; const handleUpdateDocument = ( documentId, event ) => { const title = event.target.value.trim(); if ( title !== '' && event.keyCode === 13 ) { updateDocument.call({ _id: documentId, update: { title: title } }, ( error, response ) => { if ( error ) { Bert.alert( error.reason, 'danger' ); } }); } }; const handleRemoveDocument = ( documentId, event ) => { event.preventDefault(); if ( confirm( 'Are you sure? This is permanent.' ) ) { removeDocument.call({ _id: documentId }, ( error, response ) => { if ( error ) { Bert.alert( error.reason, 'danger' ); } else { Bert.alert( 'Document removed!', 'success' ); } }); } }; export const DocumentsList = ( { documents } ) => { if ( documents.length > 0 ) { return <ListGroup className="documents-list"> {documents.map( ( { _id, title } ) => { return <ListGroupItem key={ _id }> <Row> <Col xs={ 8 } sm={ 10 }> <Input type="text" standalone defaultValue={ title } onKeyUp={ handleUpdateDocument.bind( this, _id ) } /> </Col> <Col xs={ 4 } sm={ 2 }> <Button bsStyle="danger" className="btn-block" onClick={ handleRemoveDocument.bind( this, _id ) }> Remove </Button> </Col> </Row> </ListGroupItem>; })} </ListGroup>; } else { return <Alert bsStyle="warning">No documents yet.</Alert>; } }; |