Fix popovers for editing when sidebar is off
This commit is contained in:
parent
420006ca57
commit
9e68b88213
@ -11,6 +11,7 @@ import {
|
|||||||
ObjectType,
|
ObjectType,
|
||||||
tableThemes,
|
tableThemes,
|
||||||
defaultTableTheme,
|
defaultTableTheme,
|
||||||
|
State,
|
||||||
} from "../data/data";
|
} from "../data/data";
|
||||||
import {
|
import {
|
||||||
AreaContext,
|
AreaContext,
|
||||||
@ -23,9 +24,8 @@ import {
|
|||||||
|
|
||||||
export default function Area(props) {
|
export default function Area(props) {
|
||||||
const [hovered, setHovered] = useState(false);
|
const [hovered, setHovered] = useState(false);
|
||||||
const [saved, setSaved] = useState(false);
|
|
||||||
const [editField, setEditField] = useState({});
|
const [editField, setEditField] = useState({});
|
||||||
const { layout } = useContext(LayoutContext);
|
const { layout, setState } = useContext(LayoutContext);
|
||||||
const { settings } = useContext(SettingsContext);
|
const { settings } = useContext(SettingsContext);
|
||||||
const { tab, setTab } = useContext(TabContext);
|
const { tab, setTab } = useContext(TabContext);
|
||||||
const { updateArea, deleteArea } = useContext(AreaContext);
|
const { updateArea, deleteArea } = useContext(AreaContext);
|
||||||
@ -49,7 +49,6 @@ export default function Area(props) {
|
|||||||
onMouseEnter={() => setHovered(true)}
|
onMouseEnter={() => setHovered(true)}
|
||||||
onMouseLeave={() => {
|
onMouseLeave={() => {
|
||||||
setHovered(false);
|
setHovered(false);
|
||||||
setSaved(false);
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<foreignObject
|
<foreignObject
|
||||||
@ -96,6 +95,7 @@ export default function Area(props) {
|
|||||||
...prev,
|
...prev,
|
||||||
openDialogue: false,
|
openDialogue: false,
|
||||||
}));
|
}));
|
||||||
|
setState(State.SAVING);
|
||||||
}}
|
}}
|
||||||
stopPropagation
|
stopPropagation
|
||||||
content={
|
content={
|
||||||
@ -113,7 +113,6 @@ export default function Area(props) {
|
|||||||
}
|
}
|
||||||
onFocus={(e) => setEditField({ name: e.target.value })}
|
onFocus={(e) => setEditField({ name: e.target.value })}
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
setSaved(true);
|
|
||||||
if (e.target.value === editField.name) return;
|
if (e.target.value === editField.name) return;
|
||||||
setUndoStack((prev) => [
|
setUndoStack((prev) => [
|
||||||
...prev,
|
...prev,
|
||||||
@ -137,11 +136,12 @@ export default function Area(props) {
|
|||||||
<Button
|
<Button
|
||||||
type="tertiary"
|
type="tertiary"
|
||||||
size="small"
|
size="small"
|
||||||
onClick={() =>
|
onClick={() => {
|
||||||
updateArea(props.areaData.id, {
|
updateArea(props.areaData.id, {
|
||||||
color: defaultTableTheme,
|
color: defaultTableTheme,
|
||||||
})
|
});
|
||||||
}
|
setState(State.SAVING);
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Clear
|
Clear
|
||||||
</Button>
|
</Button>
|
||||||
@ -245,30 +245,6 @@ export default function Area(props) {
|
|||||||
>
|
>
|
||||||
Delete
|
Delete
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
|
||||||
block
|
|
||||||
style={{ marginLeft: "8px" }}
|
|
||||||
onClick={() => {
|
|
||||||
if (!saved) {
|
|
||||||
if (props.areaData.name === editField.name) return;
|
|
||||||
setUndoStack((prev) => [
|
|
||||||
...prev,
|
|
||||||
{
|
|
||||||
action: Action.EDIT,
|
|
||||||
element: ObjectType.AREA,
|
|
||||||
aid: props.areaData.id,
|
|
||||||
undo: editField,
|
|
||||||
redo: { name: props.areaData.name },
|
|
||||||
message: `Edit area name to ${props.areaData.name}`,
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
setRedoStack([]);
|
|
||||||
setSaved(false);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Save
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,12 @@ import {
|
|||||||
tableThemes,
|
tableThemes,
|
||||||
Action,
|
Action,
|
||||||
ObjectType,
|
ObjectType,
|
||||||
|
State,
|
||||||
} from "../data/data";
|
} from "../data/data";
|
||||||
import { AreaContext, UndoRedoContext } from "../pages/Editor";
|
import { AreaContext, LayoutContext, UndoRedoContext } from "../pages/Editor";
|
||||||
|
|
||||||
export default function AreaOverview() {
|
export default function AreaOverview() {
|
||||||
|
const { setState } = useContext(LayoutContext);
|
||||||
const { areas, addArea, deleteArea, updateArea } = useContext(AreaContext);
|
const { areas, addArea, deleteArea, updateArea } = useContext(AreaContext);
|
||||||
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
||||||
const [editField, setEditField] = useState({});
|
const [editField, setEditField] = useState({});
|
||||||
@ -135,9 +137,10 @@ export default function AreaOverview() {
|
|||||||
<Button
|
<Button
|
||||||
type="tertiary"
|
type="tertiary"
|
||||||
size="small"
|
size="small"
|
||||||
onClick={() =>
|
onClick={() => {
|
||||||
updateArea(i, { color: defaultTableTheme })
|
updateArea(i, { color: defaultTableTheme });
|
||||||
}
|
setState(State.SAVING);
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Clear
|
Clear
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -6,7 +6,7 @@ import {
|
|||||||
TabContext,
|
TabContext,
|
||||||
SelectContext,
|
SelectContext,
|
||||||
} from "../pages/Editor";
|
} from "../pages/Editor";
|
||||||
import { Action, ObjectType, noteThemes, Tab } from "../data/data";
|
import { Action, ObjectType, noteThemes, Tab, State } from "../data/data";
|
||||||
import { Input, Button, Popover, Toast } from "@douyinfe/semi-ui";
|
import { Input, Button, Popover, Toast } from "@douyinfe/semi-ui";
|
||||||
import {
|
import {
|
||||||
IconEdit,
|
IconEdit,
|
||||||
@ -22,7 +22,7 @@ export default function Note(props) {
|
|||||||
const fold = 24;
|
const fold = 24;
|
||||||
const { updateNote, deleteNote } = useContext(NoteContext);
|
const { updateNote, deleteNote } = useContext(NoteContext);
|
||||||
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
const { setUndoStack, setRedoStack } = useContext(UndoRedoContext);
|
||||||
const { layout } = useContext(LayoutContext);
|
const { layout, setState } = useContext(LayoutContext);
|
||||||
const { tab, setTab } = useContext(TabContext);
|
const { tab, setTab } = useContext(TabContext);
|
||||||
const { selectedElement, setSelectedElement } = useContext(SelectContext);
|
const { selectedElement, setSelectedElement } = useContext(SelectContext);
|
||||||
|
|
||||||
@ -146,6 +146,7 @@ export default function Note(props) {
|
|||||||
...prev,
|
...prev,
|
||||||
openDialogue: false,
|
openDialogue: false,
|
||||||
}));
|
}));
|
||||||
|
setState(State.SAVING);
|
||||||
}}
|
}}
|
||||||
stopPropagation
|
stopPropagation
|
||||||
content={
|
content={
|
||||||
|
Loading…
Reference in New Issue
Block a user