add comments
This commit is contained in:
parent
1419f17175
commit
a0669f874e
@ -263,9 +263,14 @@ export class App extends React.Component<any, AppState> {
|
||||
sceneAppState || getDefaultAppState(),
|
||||
{ scrollToContent: true },
|
||||
);
|
||||
// Perform reconciliation - in collaboration, if we encounter
|
||||
// elements with more staler versions than ours, ignore them
|
||||
// and keep ours.
|
||||
if (elements == null || elements.length === 0) {
|
||||
elements = restoredState.elements;
|
||||
} else {
|
||||
// create a map of ids so we don't have to iterate
|
||||
// over the array more than once.
|
||||
const elementMap = elements.reduce(
|
||||
(
|
||||
acc: { [key: string]: ExcalidrawElement },
|
||||
@ -276,6 +281,7 @@ export class App extends React.Component<any, AppState> {
|
||||
},
|
||||
{},
|
||||
);
|
||||
// Reconcile
|
||||
elements = restoredState.elements.map(element => {
|
||||
if (
|
||||
elementMap.hasOwnProperty(element.id) &&
|
||||
|
@ -3,6 +3,9 @@ import {
|
||||
MutableExcalidrawTextElement,
|
||||
} from "./types";
|
||||
|
||||
// This function tracks updates of text elements for the purposes for collaboration.
|
||||
// The version is used to compare updates when more than one user is working in
|
||||
// the same drawing.
|
||||
export function mutateElement(
|
||||
element: MutableExcalidrawElement,
|
||||
callback: (mutatableElement: MutableExcalidrawElement) => void,
|
||||
@ -11,6 +14,9 @@ export function mutateElement(
|
||||
callback(element);
|
||||
}
|
||||
|
||||
// This function tracks updates of text elements for the purposes for collaboration.
|
||||
// The version is used to compare updates when more than one user is working in
|
||||
// the same document.
|
||||
export function mutateTextElement(
|
||||
element: MutableExcalidrawTextElement,
|
||||
callback: (mutatableElement: MutableExcalidrawTextElement) => void,
|
||||
|
Loading…
x
Reference in New Issue
Block a user