diff --git a/packages/apps/backend/src/sofie-core-connection/dataTransformers/PartTransformer.ts b/packages/apps/backend/src/sofie-core-connection/dataTransformers/PartTransformer.ts index fa4d092..910ebab 100644 --- a/packages/apps/backend/src/sofie-core-connection/dataTransformers/PartTransformer.ts +++ b/packages/apps/backend/src/sofie-core-connection/dataTransformers/PartTransformer.ts @@ -29,9 +29,12 @@ export class PartTransformer { private readonly corePartPieces = observable.map() + private readonly editedScripts = observable.map() + constructor(private transformers: Transformers) { makeObservable(this, { partIds: computed, + updateEditedScript: action, updateCorePart: action, updateCorePiece: action, updateCoreShowStyleBase: action, @@ -159,6 +162,8 @@ export class PartTransformer { } } + const editedScript = this.editedScripts.get(this.convertId(partId)) + return literal({ _id: partId, playlistId, @@ -180,11 +185,18 @@ export class PartTransformer { label: derived.displayLabel, }, scriptContents: derived.scriptContents, + editedScriptContents: editedScript, }) - - return undefined }) + updateEditedScript(partId: Core.PartId, editedScript: ScriptContents | undefined) { + if (editedScript !== undefined) { + this.editedScripts.set(partId, editedScript) + } else { + this.editedScripts.delete(partId) + } + } + updateCorePart(partId: Core.PartId, part: Core.DBPart | undefined) { if (part) { if (!isEqual(this.coreParts.get(partId), part)) { diff --git a/packages/apps/client/src/components/ScriptEditor/Editor.tsx b/packages/apps/client/src/components/ScriptEditor/Editor.tsx index e082f80..3dadab7 100644 --- a/packages/apps/client/src/components/ScriptEditor/Editor.tsx +++ b/packages/apps/client/src/components/ScriptEditor/Editor.tsx @@ -216,7 +216,7 @@ function makeNewEditorState(doc: Node): EditorState { keymap(formatingKeymap), keymap(baseKeymap), readOnlyNodeFilter(), - updateModel((lineId, change) => console.log(lineId, change)), + updateModel((lineId, change) => console.log(lineId, change, doc)), ], doc, }) diff --git a/packages/apps/client/src/model/UILine.ts b/packages/apps/client/src/model/UILine.ts index 7ba3861..d35648b 100644 --- a/packages/apps/client/src/model/UILine.ts +++ b/packages/apps/client/src/model/UILine.ts @@ -52,7 +52,7 @@ export class UILine { this.identifier = json.identifier ?? null this.slug = json.label this.rank = json.rank - this.script = json.scriptContents ?? null + this.script = json.editedScriptContents ?? json.scriptContents ?? null this.isNew = json.isNew ?? false this.expectedDuration = json.expectedDuration ?? null this.lineType = { diff --git a/packages/shared/model/src/model/Part.ts b/packages/shared/model/src/model/Part.ts index d503acc..130cf9e 100644 --- a/packages/shared/model/src/model/Part.ts +++ b/packages/shared/model/src/model/Part.ts @@ -47,6 +47,7 @@ export interface Part extends DataObject { } scriptContents?: ScriptContents + editedScriptContents?: ScriptContents } export enum PartDisplayType {