diff --git a/src/components/ConnectionSidebar.tsx b/src/components/ConnectionSidebar.tsx index e01749b..569ce58 100644 --- a/src/components/ConnectionSidebar.tsx +++ b/src/components/ConnectionSidebar.tsx @@ -1,22 +1,17 @@ import { Drawer } from "@mui/material"; -import { head } from "lodash-es"; import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useConnectionStore, useLayoutStore, ResponsiveWidth } from "@/store"; -import { Connection } from "@/types"; import Select from "./kit/Select"; import Tooltip from "./kit/Tooltip"; import Icon from "./Icon"; -import EngineIcon from "./EngineIcon"; import DarkModeSwitch from "./DarkModeSwitch"; -import CreateConnectionModal from "./CreateConnectionModal"; import SettingModal from "./SettingModal"; import ConversationList from "./Sidebar/ConversationList"; +import ConnectionList from "./Sidebar/ConnectionList"; interface State { - showCreateConnectionModal: boolean; showSettingModal: boolean; - showUpdateConversationModal: boolean; } const ConnectionSidebar = () => { @@ -24,13 +19,9 @@ const ConnectionSidebar = () => { const layoutStore = useLayoutStore(); const connectionStore = useConnectionStore(); const [state, setState] = useState({ - showCreateConnectionModal: false, showSettingModal: false, - showUpdateConversationModal: false, }); - const [editConnectionModalContext, setEditConnectionModalContext] = useState(); const [isRequestingDatabase, setIsRequestingDatabase] = useState(false); - const connectionList = connectionStore.connectionList; const currentConnectionCtx = connectionStore.currentConnectionCtx; const databaseList = connectionStore.databaseList.filter((database) => database.connectionId === currentConnectionCtx?.connection.id); @@ -64,14 +55,6 @@ const ConnectionSidebar = () => { } }, [currentConnectionCtx?.connection]); - const toggleCreateConnectionModal = (show = true) => { - setState({ - ...state, - showCreateConnectionModal: show, - }); - setEditConnectionModalContext(undefined); - }; - const toggleSettingModal = (show = true) => { setState({ ...state, @@ -79,22 +62,6 @@ const ConnectionSidebar = () => { }); }; - const handleConnectionSelect = async (connection: Connection) => { - const databaseList = await connectionStore.getOrFetchDatabaseList(connection); - connectionStore.setCurrentConnectionCtx({ - connection, - database: head(databaseList), - }); - }; - - const handleEditConnection = (connection: Connection) => { - setState({ - ...state, - showCreateConnectionModal: true, - }); - setEditConnectionModalContext(connection); - }; - const handleDatabaseNameSelect = async (databaseName: string) => { if (!currentConnectionCtx?.connection) { return; @@ -120,43 +87,7 @@ const ConnectionSidebar = () => {
- - {connectionList.map((connection) => ( - - - - ))} - - - +
@@ -237,10 +168,6 @@ const ConnectionSidebar = () => {
- {state.showCreateConnectionModal && ( - toggleCreateConnectionModal(false)} /> - )} - {state.showSettingModal && toggleSettingModal(false)} />} ); diff --git a/src/components/Sidebar/ConnectionList.tsx b/src/components/Sidebar/ConnectionList.tsx new file mode 100644 index 0000000..ec2afb4 --- /dev/null +++ b/src/components/Sidebar/ConnectionList.tsx @@ -0,0 +1,98 @@ +import { head } from "lodash-es"; +import { useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useConnectionStore } from "@/store"; +import { Connection } from "@/types"; +import Tooltip from "../kit/Tooltip"; +import Icon from "../Icon"; +import EngineIcon from "../EngineIcon"; +import CreateConnectionModal from "../CreateConnectionModal"; + +interface State { + showCreateConnectionModal: boolean; + showSettingModal: boolean; + showUpdateConversationModal: boolean; +} + +const ConnectionList = () => { + const { t } = useTranslation(); + const connectionStore = useConnectionStore(); + const [state, setState] = useState({ + showCreateConnectionModal: false, + showSettingModal: false, + showUpdateConversationModal: false, + }); + const [editConnectionModalContext, setEditConnectionModalContext] = useState(); + const connectionList = connectionStore.connectionList; + const currentConnectionCtx = connectionStore.currentConnectionCtx; + + const toggleCreateConnectionModal = (show = true) => { + setState({ + ...state, + showCreateConnectionModal: show, + }); + setEditConnectionModalContext(undefined); + }; + + const handleConnectionSelect = async (connection: Connection) => { + const databaseList = await connectionStore.getOrFetchDatabaseList(connection); + connectionStore.setCurrentConnectionCtx({ + connection, + database: head(databaseList), + }); + }; + + const handleEditConnection = (connection: Connection) => { + setState({ + ...state, + showCreateConnectionModal: true, + }); + setEditConnectionModalContext(connection); + }; + + return ( + <> + + {connectionList.map((connection) => ( + + + + ))} + + + + + {state.showCreateConnectionModal && ( + toggleCreateConnectionModal(false)} /> + )} + + ); +}; + +export default ConnectionList;