1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 16:10:26 +00:00
Files
seahub/frontend/src/components/dialog/copy-move-dirent-progress-dialog.js
Michael An 08abceb14b custom modal header close icon (#7240)
* seahub custom modal header

* add custom modal header

* special modal use custom close
2024-12-24 11:20:40 +08:00

52 lines
1.7 KiB
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalBody } from 'reactstrap';
import { gettext } from '../../utils/constants';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import '../../css/copy-move-dirent-progress-dialog.css';
const propTypes = {
type: PropTypes.oneOf(['move', 'copy']).isRequired,
asyncOperatedFilesLength: PropTypes.number.isRequired,
asyncOperationProgress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
toggleDialog: PropTypes.func.isRequired,
};
class CopyMoveDirentProgressDialog extends React.Component {
render() {
let { type, asyncOperationProgress, asyncOperatedFilesLength } = this.props;
let title = type === 'move' ? gettext('Move {num} items') : gettext('Copy {num} items');
title = title.replace('{num}', asyncOperatedFilesLength);
let progressStyle = {
width: asyncOperationProgress + '%',
lineHeight: '40px',
textAlign: 'left',
};
return (
<Modal isOpen={true} toggle={this.props.toggleDialog} className="copy-move-dirent-progress-dialog">
<SeahubModalHeader toggle={this.props.toggleDialog}>{title}</SeahubModalHeader>
<ModalBody>
<div className="progress">
<div
className="progress-bar pl-2"
role="progressbar"
style={progressStyle}
aria-valuenow={asyncOperationProgress}
aria-valuemin="0"
aria-valuemax="100"
>
{asyncOperationProgress + '%'}
</div>
</div>
</ModalBody>
</Modal>
);
}
}
CopyMoveDirentProgressDialog.propTypes = propTypes;
export default CopyMoveDirentProgressDialog;