mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-10-01 07:55:22 +02:00
New: Edit and Delete Buttons in Indexer Info modal
This commit is contained in:
@@ -7,7 +7,7 @@ import EditIndexerModalContentConnector from './EditIndexerModalContentConnector
|
|||||||
function EditIndexerModal({ isOpen, onModalClose, ...otherProps }) {
|
function EditIndexerModal({ isOpen, onModalClose, ...otherProps }) {
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
size={sizes.LARGE}
|
size={sizes.MEDIUM}
|
||||||
isOpen={isOpen}
|
isOpen={isOpen}
|
||||||
onModalClose={onModalClose}
|
onModalClose={onModalClose}
|
||||||
>
|
>
|
||||||
|
@@ -3,3 +3,9 @@
|
|||||||
|
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.deleteButton {
|
||||||
|
composes: button from '~Components/Link/Button.css';
|
||||||
|
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
// This file is automatically generated.
|
// This file is automatically generated.
|
||||||
// Please do not change this file!
|
// Please do not change this file!
|
||||||
interface CssExports {
|
interface CssExports {
|
||||||
|
'deleteButton': string;
|
||||||
'description': string;
|
'description': string;
|
||||||
}
|
}
|
||||||
export const cssExports: CssExports;
|
export const cssExports: CssExports;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import React from 'react';
|
import React, { useCallback, useState } from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import { createSelector } from 'reselect';
|
import { createSelector } from 'reselect';
|
||||||
import DescriptionList from 'Components/DescriptionList/DescriptionList';
|
import DescriptionList from 'Components/DescriptionList/DescriptionList';
|
||||||
@@ -14,6 +14,8 @@ import ModalContent from 'Components/Modal/ModalContent';
|
|||||||
import ModalFooter from 'Components/Modal/ModalFooter';
|
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||||
import { kinds } from 'Helpers/Props';
|
import { kinds } from 'Helpers/Props';
|
||||||
|
import DeleteIndexerModal from 'Indexer/Delete/DeleteIndexerModal';
|
||||||
|
import EditIndexerModalConnector from 'Indexer/Edit/EditIndexerModalConnector';
|
||||||
import Indexer from 'Indexer/Indexer';
|
import Indexer from 'Indexer/Indexer';
|
||||||
import createIndexerSelector from 'Store/Selectors/createIndexerSelector';
|
import createIndexerSelector from 'Store/Selectors/createIndexerSelector';
|
||||||
import translate from 'Utilities/String/translate';
|
import translate from 'Utilities/String/translate';
|
||||||
@@ -58,6 +60,28 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) {
|
|||||||
fields.find((field) => field.name === 'baseUrl')?.value ??
|
fields.find((field) => field.name === 'baseUrl')?.value ??
|
||||||
(Array.isArray(indexerUrls) ? indexerUrls[0] : undefined);
|
(Array.isArray(indexerUrls) ? indexerUrls[0] : undefined);
|
||||||
|
|
||||||
|
const [isEditIndexerModalOpen, setIsEditIndexerModalOpen] = useState(false);
|
||||||
|
const [isDeleteIndexerModalOpen, setIsDeleteIndexerModalOpen] =
|
||||||
|
useState(false);
|
||||||
|
|
||||||
|
const onEditIndexerPress = useCallback(() => {
|
||||||
|
setIsEditIndexerModalOpen(true);
|
||||||
|
}, [setIsEditIndexerModalOpen]);
|
||||||
|
|
||||||
|
const onEditIndexerModalClose = useCallback(() => {
|
||||||
|
setIsEditIndexerModalOpen(false);
|
||||||
|
}, [setIsEditIndexerModalOpen]);
|
||||||
|
|
||||||
|
const onDeleteIndexerPress = useCallback(() => {
|
||||||
|
setIsEditIndexerModalOpen(false);
|
||||||
|
setIsDeleteIndexerModalOpen(true);
|
||||||
|
}, [setIsDeleteIndexerModalOpen]);
|
||||||
|
|
||||||
|
const onDeleteIndexerModalClose = useCallback(() => {
|
||||||
|
setIsDeleteIndexerModalOpen(false);
|
||||||
|
onModalClose();
|
||||||
|
}, [setIsDeleteIndexerModalOpen, onModalClose]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalContent onModalClose={onModalClose}>
|
<ModalContent onModalClose={onModalClose}>
|
||||||
<ModalHeader>{`${name}`}</ModalHeader>
|
<ModalHeader>{`${name}`}</ModalHeader>
|
||||||
@@ -191,8 +215,29 @@ function IndexerInfoModalContent(props: IndexerInfoModalContentProps) {
|
|||||||
</FieldSet>
|
</FieldSet>
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
<ModalFooter>
|
<ModalFooter>
|
||||||
|
<Button
|
||||||
|
className={styles.deleteButton}
|
||||||
|
kind={kinds.DANGER}
|
||||||
|
onPress={onDeleteIndexerPress}
|
||||||
|
>
|
||||||
|
{translate('Delete')}
|
||||||
|
</Button>
|
||||||
|
<Button onPress={onEditIndexerPress}>{translate('Edit')}</Button>
|
||||||
<Button onPress={onModalClose}>{translate('Close')}</Button>
|
<Button onPress={onModalClose}>{translate('Close')}</Button>
|
||||||
</ModalFooter>
|
</ModalFooter>
|
||||||
|
|
||||||
|
<EditIndexerModalConnector
|
||||||
|
isOpen={isEditIndexerModalOpen}
|
||||||
|
id={id}
|
||||||
|
onModalClose={onEditIndexerModalClose}
|
||||||
|
onDeleteIndexerPress={onDeleteIndexerPress}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<DeleteIndexerModal
|
||||||
|
isOpen={isDeleteIndexerModalOpen}
|
||||||
|
indexerId={id}
|
||||||
|
onModalClose={onDeleteIndexerModalClose}
|
||||||
|
/>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user