aboutsummaryrefslogtreecommitdiff
path: root/src/new_fields
diff options
context:
space:
mode:
Diffstat (limited to 'src/new_fields')
-rw-r--r--src/new_fields/Doc.ts1
-rw-r--r--src/new_fields/RichTextField.ts1
-rw-r--r--src/new_fields/util.ts5
3 files changed, 5 insertions, 2 deletions
diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts
index b1c1fda05..f230abaf4 100644
--- a/src/new_fields/Doc.ts
+++ b/src/new_fields/Doc.ts
@@ -559,6 +559,7 @@ export namespace Doc {
copy[key] = Doc.MakeCopy(doc[key]!, false);
}
} else {
+ const field = ProxyField.WithoutProxy(() => doc[key]);
if (field instanceof RefField) {
copy[key] = field;
} else if (cfield instanceof ComputedField) {
diff --git a/src/new_fields/RichTextField.ts b/src/new_fields/RichTextField.ts
index a0f21f45e..e38c0bb0e 100644
--- a/src/new_fields/RichTextField.ts
+++ b/src/new_fields/RichTextField.ts
@@ -19,6 +19,7 @@ export class RichTextField extends ObjectField {
this.Text = text;
}
+
[Copy]() {
return new RichTextField(this.Data, this.Text);
}
diff --git a/src/new_fields/util.ts b/src/new_fields/util.ts
index ebc0a1272..24119fdfa 100644
--- a/src/new_fields/util.ts
+++ b/src/new_fields/util.ts
@@ -75,14 +75,15 @@ const _setterImpl = action(function (target: any, prop: string | symbol | number
} else {
target.__fields[prop] = value;
}
- if (typeof value === "object" && !(value instanceof ObjectField)) debugger;
+ // if (typeof value === "object" && !(value instanceof ObjectField)) debugger;
if (writeToServer) {
if (value === undefined) target[Update]({ '$unset': { ["fields." + prop]: "" } });
else target[Update]({ '$set': { ["fields." + prop]: value instanceof ObjectField ? SerializationHelper.Serialize(value) : (value === undefined ? null : value) } });
} else {
DocServer.registerDocWithCachedUpdate(receiver, prop as string, curValue);
}
- UndoManager.AddEvent({
+ UndoManager.
+ AddEvent({
redo: () => receiver[prop] = value,
undo: () => receiver[prop] = curValue
});