From 08183863e77dbc70534804b161004297149c7d94 Mon Sep 17 00:00:00 2001 From: Aaron Dodson Date: Fri, 3 May 2024 12:27:55 -0700 Subject: [PATCH] refactor: split out block serialization for creating new blocks from the flyout (#8065) * refactor: split out block serialization for creating new blocks from the flyout * fix: add JSDoc. * chore: satisfy the linter. --- core/flyout_base.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/core/flyout_base.ts b/core/flyout_base.ts index 927112824..3e77ee2e0 100644 --- a/core/flyout_base.ts +++ b/core/flyout_base.ts @@ -1301,8 +1301,8 @@ export abstract class Flyout } // Clone the block. - const json = blocks.save(oldBlock) as blocks.State; - // Normallly this resizes leading to weird jumps. Save it for terminateDrag. + const json = this.serializeBlock(oldBlock); + // Normally this resizes leading to weird jumps. Save it for terminateDrag. targetWorkspace.setResizesEnabled(false); const block = blocks.append(json, targetWorkspace) as BlockSvg; @@ -1311,6 +1311,16 @@ export abstract class Flyout return block; } + /** + * Serialize a block to JSON. + * + * @param block The block to serialize. + * @returns A serialized representation of the block. + */ + protected serializeBlock(block: BlockSvg): blocks.State { + return blocks.save(block) as blocks.State; + } + /** * Positions a block on the target workspace. *