add confirmThumbnailUpload modal
This commit is contained in:
parent
de8f116709
commit
f5be93b6b5
4 changed files with 95 additions and 2 deletions
23
src/renderer/constants/modal_types.js
Normal file
23
src/renderer/constants/modal_types.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
export const CONFIRM_FILE_REMOVE = 'confirm_file_remove';
|
||||
export const INCOMPATIBLE_DAEMON = 'incompatible_daemon';
|
||||
export const FILE_TIMEOUT = 'file_timeout';
|
||||
export const DOWNLOADING = 'downloading';
|
||||
export const AUTO_UPDATE_DOWNLOADED = 'auto_update_downloaded';
|
||||
export const AUTO_UPDATE_CONFIRM = 'auto_update_confirm';
|
||||
export const ERROR = 'error';
|
||||
export const INSUFFICIENT_CREDITS = 'insufficient_credits';
|
||||
export const UPGRADE = 'upgrade';
|
||||
export const WELCOME = 'welcome';
|
||||
export const EMAIL_COLLECTION = 'email_collection';
|
||||
export const PHONE_COLLECTION = 'phone_collection';
|
||||
export const FIRST_REWARD = 'first_reward';
|
||||
export const AUTHENTICATION_FAILURE = 'auth_failure';
|
||||
export const TRANSACTION_FAILED = 'transaction_failed';
|
||||
export const REWARD_APPROVAL_REQUIRED = 'reward_approval_required';
|
||||
export const AFFIRM_PURCHASE = 'affirm_purchase';
|
||||
export const CONFIRM_CLAIM_REVOKE = 'confirm_claim_revoke';
|
||||
export const FIRST_SUBSCRIPTION = 'firstSubscription';
|
||||
export const SEND_TIP = 'send_tip';
|
||||
export const PUBLISH = 'publish';
|
||||
export const SEARCH = 'search';
|
||||
export const CONFIRM_THUMBNAIL_UPLOAD = 'confirmThumbnailUpload';
|
18
src/renderer/modal/modalConfirmThumbnailUpload/index.js
Normal file
18
src/renderer/modal/modalConfirmThumbnailUpload/index.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
import { connect } from 'react-redux';
|
||||
import { doCloseModal } from 'redux/actions/app';
|
||||
import { doUploadThumbnail, doUpdatePublishForm } from 'redux/actions/publish';
|
||||
import { selectPublishFormValues } from 'redux/selectors/publish';
|
||||
import ModalConfirmThumbnailUpload from './view';
|
||||
|
||||
const select = state => {
|
||||
const publishState = selectPublishFormValues(state);
|
||||
return { nsfw: publishState.nsfw };
|
||||
};
|
||||
|
||||
const perform = dispatch => ({
|
||||
closeModal: () => dispatch(doCloseModal()),
|
||||
upload: (path, nsfw = false) => dispatch(doUploadThumbnail(path, nsfw)),
|
||||
updatePublishForm: value => dispatch(doUpdatePublishForm(value)),
|
||||
});
|
||||
|
||||
export default connect(select, perform)(ModalConfirmThumbnailUpload);
|
45
src/renderer/modal/modalConfirmThumbnailUpload/view.jsx
Normal file
45
src/renderer/modal/modalConfirmThumbnailUpload/view.jsx
Normal file
|
@ -0,0 +1,45 @@
|
|||
// @flow
|
||||
import React from 'react';
|
||||
import { Modal } from 'modal/modal';
|
||||
import { FormField } from 'component/common/form';
|
||||
|
||||
type Props = {
|
||||
upload: (string, boolean) => void,
|
||||
path: string,
|
||||
nsfw: boolean,
|
||||
closeModal: () => void,
|
||||
updatePublishForm: any => void,
|
||||
};
|
||||
|
||||
class ModalConfirmThumbnailUpload extends React.PureComponent<Props> {
|
||||
upload() {
|
||||
this.props.upload(this.props.path, this.props.nsfw);
|
||||
this.props.closeModal();
|
||||
}
|
||||
|
||||
render() {
|
||||
const { closeModal, path, updatePublishForm, nsfw } = this.props;
|
||||
|
||||
return (
|
||||
<Modal
|
||||
isOpen
|
||||
contentLabel={__('Confirm Thumbnail Upload')}
|
||||
type="confirm"
|
||||
confirmButtonLabel={__('Upload')}
|
||||
onConfirmed={() => this.upload()}
|
||||
onAborted={closeModal}
|
||||
>
|
||||
<p>{`Confirm upload: ${path}`}</p>
|
||||
<FormField
|
||||
type="checkbox"
|
||||
name="content_is_mature"
|
||||
postfix={__('Mature audiences only')}
|
||||
checked={nsfw}
|
||||
onChange={event => updatePublishForm({ nsfw: event.target.checked })}
|
||||
/>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default ModalConfirmThumbnailUpload;
|
|
@ -23,8 +23,13 @@ import ModalSendTip from '../modalSendTip';
|
|||
import ModalPublish from '../modalPublish';
|
||||
import ModalSearch from '../modalSearch';
|
||||
import ModalOpenExternalLink from '../modalOpenExternalLink';
|
||||
import ModalConfirmThumbnailUpload from 'modal/modalConfirmThumbnailUpload';
|
||||
|
||||
class ModalRouter extends React.PureComponent {
|
||||
type Props = {
|
||||
modal: string,
|
||||
};
|
||||
|
||||
class ModalRouter extends React.PureComponent<Props> {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
|
@ -57,7 +62,7 @@ class ModalRouter extends React.PureComponent {
|
|||
|
||||
if (
|
||||
transitionModal &&
|
||||
(transitionModal != this.state.lastTransitionModal || page != this.state.lastTransitionPage)
|
||||
(transitionModal !== this.state.lastTransitionModal || page !== this.state.lastTransitionPage)
|
||||
) {
|
||||
openModal({ id: transitionModal });
|
||||
this.setState({
|
||||
|
@ -161,6 +166,8 @@ class ModalRouter extends React.PureComponent {
|
|||
return <ModalOpenExternalLink {...notificationProps} />;
|
||||
case MODALS.CONFIRM_TRANSACTION:
|
||||
return <ModalConfirmTransaction {...notificationProps} />;
|
||||
case MODALS.CONFIRM_THUMBNAIL_UPLOAD:
|
||||
return <ModalConfirmThumbnailUpload {...modalProps} />;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue