1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-18 01:03:40 +00:00
seahub/frontend/src/components/dialog/wiki-clean-trash.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

91 lines
2.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React from 'react';
import PropTypes from 'prop-types';
import { Modal, ModalBody, ModalFooter, Button } from 'reactstrap';
import SeahubModalHeader from '@/components/common/seahub-modal-header';
import CreatableSelect from 'react-select/creatable';
import { MenuSelectStyle } from '../common/select/seahub-select-style';
import { gettext } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import toaster from '../toast';
import wikiAPI from '../../utils/wiki-api';
const propTypes = {
wikiId: PropTypes.string.isRequired,
refreshTrash: PropTypes.func.isRequired,
toggleDialog: PropTypes.func.isRequired
};
class WikiCleanTrash extends React.Component {
constructor(props) {
super(props);
this.options = [
{ label: gettext('3 days ago'), value: 3 },
{ label: gettext('1 week ago'), value: 7 },
{ label: gettext('1 month ago'), value: 30 },
{ label: gettext('all'), value: 0 }
];
this.state = {
inputValue: this.options[0],
submitBtnDisabled: false
};
}
handleInputChange = (value) => {
this.setState({
inputValue: value
});
};
formSubmit = () => {
const inputValue = this.state.inputValue;
const { wikiId } = this.props;
this.setState({
submitBtnDisabled: true
});
wikiAPI.cleanWikiTrash(wikiId, inputValue.value).then((res) => {
toaster.success(gettext('Clean succeeded.'));
this.props.refreshTrash();
this.props.toggleDialog();
}).catch((error) => {
let errorMsg = Utils.getErrorMsg(error);
this.setState({
formErrorMsg: errorMsg,
submitBtnDisabled: false
});
});
};
render() {
const { formErrorMsg } = this.state;
return (
<Modal isOpen={true} toggle={this.props.toggleDialog}>
<SeahubModalHeader toggle={this.props.toggleDialog}>{gettext('Clean')}</SeahubModalHeader>
<ModalBody>
<React.Fragment>
<p>{gettext('Clear files in trash and history')}</p>
<CreatableSelect
defaultValue={this.options[0]}
options={this.options}
autoFocus={false}
onChange={this.handleInputChange}
placeholder=''
styles={MenuSelectStyle}
/>
{formErrorMsg && <p className="error m-0 mt-2">{formErrorMsg}</p>}
</React.Fragment>
</ModalBody>
<ModalFooter>
<Button color="secondary" onClick={this.props.toggleDialog}>{gettext('Cancel')}</Button>
<Button color="primary" disabled={this.state.submitBtnDisabled} onClick={this.formSubmit}>{gettext('Submit')}</Button>
</ModalFooter>
</Modal>
);
}
}
WikiCleanTrash.propTypes = propTypes;
export default WikiCleanTrash;