@@ -878,8 +896,6 @@ export default function Table(props) {
onClick={() => {
Toast.success(`Table deleted!`);
deleteTable(props.tableData.id);
- props.setSelectedTable("");
- setVisible(false);
}}
>
diff --git a/src/components/table_overview.jsx b/src/components/table_overview.jsx
index 374aa21..274e3b2 100644
--- a/src/components/table_overview.jsx
+++ b/src/components/table_overview.jsx
@@ -33,7 +33,7 @@ import {
IllustrationNoContent,
IllustrationNoContentDark,
} from "@douyinfe/semi-illustrations";
-import { TableContext, UndoRedoContext } from "../pages/editor";
+import { SelectContext, TableContext, UndoRedoContext } from "../pages/editor";
export default function TableOverview(props) {
const [indexActiveKey, setIndexActiveKey] = useState("");
@@ -41,6 +41,7 @@ export default function TableOverview(props) {
const { tables, addTable, deleteTable, updateField, updateTable } =
useContext(TableContext);
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
+ const { selectedElement, setSelectedElement } = useContext(SelectContext);
const [editField, setEditField] = useState({});
const [filteredResult, setFilteredResult] = useState(
tables.map((t) => {
@@ -72,7 +73,12 @@ export default function TableOverview(props) {
onChange={(v) => setValue(v)}
onSelect={(v) => {
const { id } = tables.find((t) => t.name === v);
- props.setSelectedTable(`${id}`);
+ setSelectedElement({
+ element: ObjectType.TABLE,
+ id: id,
+ openDialogue: false,
+ openCollapse: true,
+ });
document
.getElementById(`scroll_table_${id}`)
.scrollIntoView({ behavior: "smooth" });
@@ -87,8 +93,15 @@ export default function TableOverview(props) {
props.setSelectedTable(k)}
+ activeKey={selectedElement.openCollapse ? `${selectedElement.id}` : ""}
+ onChange={(k) =>
+ setSelectedElement({
+ element: ObjectType.TABLE,
+ id: parseInt(k),
+ openDialogue: false,
+ openCollapse: true,
+ })
+ }
accordion
>
{tables.length <= 0 ? (
@@ -746,7 +759,6 @@ export default function TableOverview(props) {
onClick={() => {
Toast.success(`Table deleted!`);
deleteTable(i);
- props.setSelectedTable("");
}}
>
diff --git a/src/pages/editor.jsx b/src/pages/editor.jsx
index bd2f44c..fd8bd3c 100644
--- a/src/pages/editor.jsx
+++ b/src/pages/editor.jsx
@@ -20,6 +20,7 @@ export const TabContext = createContext();
export const NoteContext = createContext();
export const SettingsContext = createContext();
export const UndoRedoContext = createContext();
+export const SelectContext = createContext();
export default function Editor(props) {
const [code, setCode] = useState("");
@@ -29,7 +30,6 @@ export default function Editor(props) {
const [notes, setNotes] = useState([]);
const [resize, setResize] = useState(false);
const [width, setWidth] = useState(340);
- const [selectedTable, setSelectedTable] = useState("");
const [tab, setTab] = useState(Tab.tables);
const [layout, setLayout] = useState({
header: true,
@@ -52,6 +52,12 @@ export default function Editor(props) {
});
const [undoStack, setUndoStack] = useState([]);
const [redoStack, setRedoStack] = useState([]);
+ const [selectedElement, setSelectedElement] = useState({
+ element: ObjectType.NONE,
+ id: -1,
+ openDialogue: false,
+ openCollapse: false,
+ });
const dragHandler = (e) => {
if (!resize) return;
@@ -226,6 +232,14 @@ export default function Editor(props) {
setTables((prev) =>
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }))
);
+ if (id === selectedElement.id) {
+ setSelectedElement({
+ element: ObjectType.NONE,
+ id: -1,
+ openDialogue: false,
+ openCollapse: false,
+ });
+ }
};
const deleteArea = (id, addToHistory = true) => {
@@ -372,39 +386,36 @@ export default function Editor(props) {
-
-
-
setResize(false)}
- onMouseMove={dragHandler}
- >
-
- {layout.sidebar && (
-
- )}
-
-
- {layout.services &&
}
+
+
+
+
setResize(false)}
+ onMouseMove={dragHandler}
+ >
+
+ {layout.sidebar && (
+
+ )}
+
+
+ {layout.services && }
+
-
+