// // Copyright (C) Stanislaw Adaszewski, 2020 // Contact: s.adaszewski@gmail.com // Website: https://adared.ch/wba // License: GNU Affero General Public License, Version 3 // import { h, Component, createRef } from 'preact'; import WBDialog from 'wb-dialog'; import linkState from 'linkstate'; import makeArvadosRequest from 'make-arvados-request'; import arvadosTypeName from 'arvados-type-name'; class WBEditDescriptionDialog extends Component { constructor(...args) { super(...args); this.dialogRef = createRef(); this.state.inputId = uuid.v4(); } show(item, callback) { const { inputId } = this.state; this.setState({ 'item': item, 'newDescription': null, 'callback': callback || (() => {}) }); this.dialogRef.current.show(); $('#' + inputId).focus(); } hide() { this.dialogRef.current.hide(); } render({ app }, { item, newDescription, callback, inputId }) { const { arvHost, arvToken } = app.state; return ( makeArvadosRequest(arvHost, arvToken, '/arvados/v1/' + arvadosTypeName(item.uuid) + 's/' + item.uuid, { method: 'PUT', data: JSON.stringify({ description: newDescription || null }) }).then(callback) }>
); } } export default WBEditDescriptionDialog;