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 4531fd5e0..08d808e78 100644
--- a/src/new_fields/Doc.ts
+++ b/src/new_fields/Doc.ts
@@ -518,6 +518,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 fd5459876..e86251732 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 04194509c..92e3e3f6f 100644
--- a/src/new_fields/util.ts
+++ b/src/new_fields/util.ts
@@ -69,14 +69,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
});