import React from 'react'; import PropTypes from 'prop-types'; import { BulkActionConfirmModal } from './BulkActionConfirmModal'; import { BulkActionPermissionModal } from './BulkActionPermissionModal'; import { BulkActionPlaylistModal } from './BulkActionPlaylistModal'; import { BulkActionChangeOwnerModal } from './BulkActionChangeOwnerModal'; import { BulkActionPublishStateModal } from './BulkActionPublishStateModal'; import { BulkActionCategoryModal } from './BulkActionCategoryModal'; import { BulkActionTagModal } from './BulkActionTagModal'; /** * Renders all bulk action modals * This component is reusable across different pages */ export function BulkActionsModals({ // Confirm modal props showConfirmModal, confirmMessage, onConfirmCancel, onConfirmProceed, // Permission modal props showPermissionModal, permissionType, selectedMediaIds, onPermissionModalCancel, onPermissionModalSuccess, onPermissionModalError, // Playlist modal props showPlaylistModal, onPlaylistModalCancel, onPlaylistModalSuccess, onPlaylistModalError, username, // Change owner modal props showChangeOwnerModal, onChangeOwnerModalCancel, onChangeOwnerModalSuccess, onChangeOwnerModalError, // Publish state modal props showPublishStateModal, onPublishStateModalCancel, onPublishStateModalSuccess, onPublishStateModalError, // Category modal props showCategoryModal, onCategoryModalCancel, onCategoryModalSuccess, onCategoryModalError, // Tag modal props showTagModal, onTagModalCancel, onTagModalSuccess, onTagModalError, // Common props csrfToken, // Notification showNotification, notificationMessage, notificationType, }) { return ( <> {showNotification && (
{notificationMessage}
)} ); } BulkActionsModals.propTypes = { showConfirmModal: PropTypes.bool.isRequired, confirmMessage: PropTypes.string.isRequired, onConfirmCancel: PropTypes.func.isRequired, onConfirmProceed: PropTypes.func.isRequired, showPermissionModal: PropTypes.bool.isRequired, permissionType: PropTypes.oneOf(['viewer', 'editor', 'owner', null]), selectedMediaIds: PropTypes.array.isRequired, onPermissionModalCancel: PropTypes.func.isRequired, onPermissionModalSuccess: PropTypes.func.isRequired, onPermissionModalError: PropTypes.func.isRequired, showPlaylistModal: PropTypes.bool.isRequired, onPlaylistModalCancel: PropTypes.func.isRequired, onPlaylistModalSuccess: PropTypes.func.isRequired, onPlaylistModalError: PropTypes.func.isRequired, username: PropTypes.string, showChangeOwnerModal: PropTypes.bool.isRequired, onChangeOwnerModalCancel: PropTypes.func.isRequired, onChangeOwnerModalSuccess: PropTypes.func.isRequired, onChangeOwnerModalError: PropTypes.func.isRequired, showPublishStateModal: PropTypes.bool.isRequired, onPublishStateModalCancel: PropTypes.func.isRequired, onPublishStateModalSuccess: PropTypes.func.isRequired, onPublishStateModalError: PropTypes.func.isRequired, showCategoryModal: PropTypes.bool.isRequired, onCategoryModalCancel: PropTypes.func.isRequired, onCategoryModalSuccess: PropTypes.func.isRequired, onCategoryModalError: PropTypes.func.isRequired, showTagModal: PropTypes.bool.isRequired, onTagModalCancel: PropTypes.func.isRequired, onTagModalSuccess: PropTypes.func.isRequired, onTagModalError: PropTypes.func.isRequired, csrfToken: PropTypes.string.isRequired, showNotification: PropTypes.bool.isRequired, notificationMessage: PropTypes.string.isRequired, notificationType: PropTypes.oneOf(['success', 'error']).isRequired, };