diff --git a/src/renderer/src/layout/components/Drawer/index.jsx b/src/renderer/src/layout/components/Drawer/index.jsx new file mode 100644 index 0000000..04f05d8 --- /dev/null +++ b/src/renderer/src/layout/components/Drawer/index.jsx @@ -0,0 +1,45 @@ +import React from "react" +import { Drawer } from "antd" + +const AppDrawer = () => { + const [render, setRender] = React.useState(null) + + const c_interface = { + open: (component, params) => { + setRender({ + component: component, + params: params ?? {} + }) + }, + close: () => { + setRender(null) + } + } + + React.useEffect(() => { + window.app.drawer = c_interface + + return () => { + window.app.drawer = null + delete window.app.drawer + } + }, []) + + return c_interface.close()} + destroyOnClose + placement="bottom" + title={render && render.params && render.params.title} + height={render && render.params && render.params.height} + > + { + render && render.component && React.createElement(render.component, { + ...render.params.props ?? {}, + close: () => c_interface.close() + }) + } + +} + +export default AppDrawer \ No newline at end of file diff --git a/src/renderer/src/pages/index.jsx b/src/renderer/src/pages/index.jsx index 6191095..b667593 100644 --- a/src/renderer/src/pages/index.jsx +++ b/src/renderer/src/pages/index.jsx @@ -13,16 +13,6 @@ import "./index.less" class InstallationsManager extends React.Component { static contextType = InstallationsContext - state = { - drawerVisible: false, - } - - toggleDrawer = (to) => { - this.setState({ - drawerVisible: to ?? !this.state.drawerVisible, - }) - } - render() { const { packages } = this.context @@ -33,7 +23,10 @@ class InstallationsManager extends React.Component { } - onClick={() => this.toggleDrawer(true)} + onClick={() => app.drawer.open(NewInstallation, { + title: "Add new installation", + height: "200px", + })} > Add new installation @@ -57,18 +50,6 @@ class InstallationsManager extends React.Component { }) } - - this.toggleDrawer(false)} - > - this.toggleDrawer(false)} - /> - } } diff --git a/src/renderer/src/pages/pkg/[pkg_id].jsx b/src/renderer/src/pages/pkg/[pkg_id].jsx index c0e59fd..36c3f50 100644 --- a/src/renderer/src/pages/pkg/[pkg_id].jsx +++ b/src/renderer/src/pages/pkg/[pkg_id].jsx @@ -74,20 +74,14 @@ const PackageOptions = (props) => { }) async function applyChanges() { - if (props.onClose) { - props.onClose() - } - - if (props.close) { - props.close() - } - setLoading(true) await ipc.exec("pkg:apply", manifest.id, changes).catch((err) => { console.log(err) }) + app.location.back() + setLoading(false) }