create abstract pluginModal dialog for all plugin actions to avoid duplicate code

This commit is contained in:
Eduard Heimbuch
2019-09-16 17:55:07 +02:00
parent c526c16bf1
commit e2a37d67a5
3 changed files with 108 additions and 323 deletions

View File

@@ -5,8 +5,13 @@ import type { Plugin } from "@scm-manager/ui-types";
import { CardColumn } from "@scm-manager/ui-components";
import PluginAvatar from "./PluginAvatar";
import classNames from "classnames";
import InstallPluginModal from "./InstallPluginModal";
import UpdatePluginModal from "./UpdatePluginModal";
import PluginModal from "./PluginModal";
const PluginAction = {
INSTALL: "install",
UPDATE: "update"
};
type Props = {
plugin: Plugin,
@@ -103,16 +108,18 @@ class PluginEntry extends React.Component<Props, State> {
const { plugin, refresh } = this.props;
if (this.isInstallable()) {
return (
<InstallPluginModal
<PluginModal
plugin={plugin}
pluginAction={PluginAction.INSTALL}
refresh={refresh}
onClose={this.toggleModal}
/>
);
} else if (this.isUpdatable()) {
return (
<UpdatePluginModal
<PluginModal
plugin={plugin}
pluginAction={PluginAction.UPDATE}
refresh={refresh}
onClose={this.toggleModal}
/>