mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
minor canvas note cleanup
This commit is contained in:
parent
a1d1b4580a
commit
2085dc5ed4
@ -85,7 +85,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "7.0.3",
|
||||
"electron": "16.2.6",
|
||||
"electron": "16.2.7",
|
||||
"electron-builder": "23.0.3",
|
||||
"electron-packager": "15.5.1",
|
||||
"electron-rebuild": "3.2.7",
|
||||
|
@ -95,7 +95,6 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
// will be overwritten
|
||||
this.excalidrawRef;
|
||||
this.$render;
|
||||
this.renderElement;
|
||||
this.$widget;
|
||||
this.reactHandlers; // used to control react state
|
||||
|
||||
@ -104,40 +103,31 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
this.isNewSceneVersion = this.isNewSceneVersion.bind(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* (trilium)
|
||||
* @returns {string} "canvas"
|
||||
*/
|
||||
static getType() {
|
||||
return "canvas";
|
||||
}
|
||||
|
||||
/**
|
||||
* (trilium)
|
||||
* renders note
|
||||
*/
|
||||
doRender() {
|
||||
this.$widget = $(TPL);
|
||||
|
||||
this.$widget.toggleClass("full-height", true); // only add
|
||||
this.$render = this.$widget.find('.canvas-render');
|
||||
this.renderElement = this.$render.get(0);
|
||||
|
||||
libraryLoader
|
||||
.requireLibrary(libraryLoader.EXCALIDRAW)
|
||||
.then(() => {
|
||||
const React = window.React;
|
||||
const ReactDOM = window.ReactDOM;
|
||||
const renderElement = this.$render.get(0);
|
||||
|
||||
ReactDOM.unmountComponentAtNode(this.renderElement);
|
||||
ReactDOM.render(React.createElement(this.createExcalidrawReactApp), this.renderElement);
|
||||
})
|
||||
ReactDOM.unmountComponentAtNode(renderElement);
|
||||
ReactDOM.render(React.createElement(this.createExcalidrawReactApp), renderElement);
|
||||
});
|
||||
|
||||
return this.$widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* (trilium)
|
||||
* called to populate the widget container with the note content
|
||||
*
|
||||
* @param {note} note
|
||||
@ -166,7 +156,7 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
* note into this fresh note. Probably due to that this note-instance does not get
|
||||
* newly instantiated?
|
||||
*/
|
||||
if (this.excalidrawRef.current && noteComplement.content === "") {
|
||||
if (this.excalidrawRef.current && noteComplement.content?.trim() === "") {
|
||||
const sceneData = {
|
||||
elements: [],
|
||||
appState: {},
|
||||
@ -175,16 +165,9 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
|
||||
this.excalidrawRef.current.updateScene(sceneData);
|
||||
}
|
||||
|
||||
/**
|
||||
* load saved content into excalidraw canvas
|
||||
*/
|
||||
else if (this.excalidrawRef.current && noteComplement.content) {
|
||||
let content ={
|
||||
elements: [],
|
||||
appState: [],
|
||||
files: [],
|
||||
};
|
||||
// load saved content into excalidraw canvas
|
||||
let content;
|
||||
|
||||
try {
|
||||
content = JSON.parse(noteComplement.content || "");
|
||||
@ -192,6 +175,12 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
console.error("Error parsing content. Probably note.type changed",
|
||||
"Starting with empty canvas"
|
||||
, note, noteComplement, err);
|
||||
|
||||
content = {
|
||||
elements: [],
|
||||
appState: [],
|
||||
files: [],
|
||||
};
|
||||
}
|
||||
|
||||
const {elements, appState, files} = content;
|
||||
@ -225,8 +214,6 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
fileArray.push(file);
|
||||
}
|
||||
|
||||
this.sceneVersion = window.Excalidraw.getSceneVersion(elements);
|
||||
|
||||
this.excalidrawRef.current.updateScene(sceneData);
|
||||
this.excalidrawRef.current.addFiles(fileArray);
|
||||
}
|
||||
@ -238,7 +225,6 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
}
|
||||
|
||||
/**
|
||||
* (trilium)
|
||||
* gets data from widget container that will be sent via spacedUpdate.scheduleUpdate();
|
||||
* this is automatically called after this.saveData();
|
||||
*/
|
||||
@ -285,13 +271,10 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
svg: svgSafeString, // not needed for excalidraw, used for note_short, content, and image api
|
||||
};
|
||||
|
||||
const contentString = JSON.stringify(content);
|
||||
|
||||
return contentString;
|
||||
return JSON.stringify(content);
|
||||
}
|
||||
|
||||
/**
|
||||
* (trilium)
|
||||
* save content to backend
|
||||
* spacedUpdate is kind of a debouncer.
|
||||
*/
|
||||
@ -300,8 +283,6 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
}
|
||||
|
||||
onChangeHandler() {
|
||||
const appState = this.excalidrawRef.current.getAppState() || {};
|
||||
|
||||
// changeHandler is called upon any tiny change in excalidraw. button clicked, hover, etc.
|
||||
// make sure only when a new element is added, we actually save something.
|
||||
const isNewSceneVersion = this.isNewSceneVersion();
|
||||
@ -336,11 +317,6 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
height: undefined
|
||||
});
|
||||
|
||||
const [viewModeEnabled, setViewModeEnabled] = React.useState(false);
|
||||
const [zenModeEnabled, setZenModeEnabled] = React.useState(false);
|
||||
const [gridModeEnabled, setGridModeEnabled] = React.useState(false);
|
||||
const [synchronized, setSynchronized] = React.useState(true);
|
||||
|
||||
React.useEffect(() => {
|
||||
const dimensions = {
|
||||
width: excalidrawWrapperRef.current.getBoundingClientRect().width,
|
||||
@ -401,9 +377,9 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
onCollabButtonClick: () => {
|
||||
window.alert("You clicked on collab button. No collaboration is implemented.");
|
||||
},
|
||||
viewModeEnabled: viewModeEnabled,
|
||||
zenModeEnabled: zenModeEnabled,
|
||||
gridModeEnabled: gridModeEnabled,
|
||||
viewModeEnabled: false,
|
||||
zenModeEnabled: false,
|
||||
gridModeEnabled: false,
|
||||
isCollaborating: false,
|
||||
detectScroll: false,
|
||||
handleKeyboardGlobally: false,
|
||||
@ -432,8 +408,7 @@ export default class ExcalidrawTypeWidget extends TypeWidget {
|
||||
getSceneVersion() {
|
||||
if (this.excalidrawRef) {
|
||||
const elements = this.excalidrawRef.current.getSceneElements();
|
||||
const sceneVersion = window.Excalidraw.getSceneVersion(elements);
|
||||
return sceneVersion;
|
||||
return window.Excalidraw.getSceneVersion(elements);
|
||||
} else {
|
||||
return this.SCENE_VERSION_ERROR;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user