From 3ae13ccc6154ac18ddfb50bd1a815f1c54209a6d Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Mon, 25 Mar 2024 09:28:41 +0100 Subject: [PATCH] use app drawer --- .../src/layout/components/Drawer/index.jsx | 45 +++++++++++++++++++ src/renderer/src/pages/index.jsx | 27 ++--------- src/renderer/src/pages/pkg/[pkg_id].jsx | 10 +---- 3 files changed, 51 insertions(+), 31 deletions(-) create mode 100644 src/renderer/src/layout/components/Drawer/index.jsx 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) }