aboutsummaryrefslogtreecommitdiff
path: root/src/new_fields/LinkButtonField.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/new_fields/LinkButtonField.ts')
-rw-r--r--src/new_fields/LinkButtonField.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/new_fields/LinkButtonField.ts b/src/new_fields/LinkButtonField.ts
new file mode 100644
index 000000000..92e1ed922
--- /dev/null
+++ b/src/new_fields/LinkButtonField.ts
@@ -0,0 +1,35 @@
+import { Deserializable } from "../client/util/SerializationHelper";
+import { serializable, primitive, createSimpleSchema, object } from "serializr";
+import { ObjectField } from "./ObjectField";
+import { Copy, ToScriptString } from "./FieldSymbols";
+import { Doc } from "./Doc";
+import { DocumentView } from "../client/views/nodes/DocumentView";
+
+export type LinkButtonData = {
+ sourceViewId: string,
+ targetViewId: string
+};
+
+const LinkButtonSchema = createSimpleSchema({
+ sourceViewId: true,
+ targetViewId: true
+});
+
+@Deserializable("linkButton")
+export class LinkButtonField extends ObjectField {
+ @serializable(object(LinkButtonSchema))
+ readonly data: LinkButtonData;
+
+ constructor(data: LinkButtonData) {
+ super();
+ this.data = data;
+ }
+
+ [Copy]() {
+ return new LinkButtonField(this.data);
+ }
+
+ [ToScriptString]() {
+ return "invalid";
+ }
+}