From a499d9600572b3031e27438eec431a4bb2b41dec Mon Sep 17 00:00:00 2001
From: Koen <98043234+koen1711@users.noreply.github.com>
Date: Mon, 22 Apr 2024 20:07:53 +0200
Subject: [PATCH] chore: blocks cleanup (#244)

* chore: blocks cleanup

* chore: prettier

* chore: prettier

* chore: bump blocks version
---
 package.json                              |  2 +-
 src/app/effects/blockly-editor.effects.ts | 14 ++++++++++----
 yarn.lock                                 |  8 ++++----
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/package.json b/package.json
index 45dd7e02..e49e31e5 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
         "@fortawesome/fontawesome-free": "^6.1.1",
         "@leaphy-robotics/avrdude-webassembly": "^1.6.1",
         "@leaphy-robotics/dfu-util-wasm": "1.0.2",
-        "@leaphy-robotics/leaphy-blocks": "2.0.3",
+        "@leaphy-robotics/leaphy-blocks": "^2.1.0",
         "@leaphy-robotics/picotool-wasm": "1.0.2",
         "@leaphy-robotics/webusb-ftdi": "^1.0.0",
         "@ngx-translate/core": "^14.0.0",
diff --git a/src/app/effects/blockly-editor.effects.ts b/src/app/effects/blockly-editor.effects.ts
index 8799de5b..1aa9c6c3 100644
--- a/src/app/effects/blockly-editor.effects.ts
+++ b/src/app/effects/blockly-editor.effects.ts
@@ -15,6 +15,7 @@ import {
     translations,
     arduino,
     getBlocks,
+    constantBlocks,
 } from "@leaphy-robotics/leaphy-blocks";
 import { LeaphyCategory } from "../services/toolbox/category";
 import { LeaphyToolbox } from "../services/toolbox/toolbox";
@@ -30,6 +31,8 @@ import { LocalStorageService } from "../services/localstorage.service";
 
 // Defines the effects on the Blockly Editor that different state changes have
 export class BlocklyEditorEffects {
+    private firstRun = true;
+
     constructor(
         private blocklyState: BlocklyEditorState,
         private appState: AppState,
@@ -127,10 +130,13 @@ export class BlocklyEditorEffects {
                     leaphyToolboxXml,
                     startWorkspaceXml,
                 ]) => {
-                    const leaphyBlocks = getBlocks(
-                        this.appState.selectedRobotType.id,
-                    );
-                    Blockly.defineBlocksWithJsonArray(leaphyBlocks.block);
+                    let allBlocks = getBlocks(robotType.id).block;
+                    if (this.firstRun) {
+                        this.firstRun = false;
+                        allBlocks = allBlocks.concat(constantBlocks);
+                    }
+
+                    Blockly.defineBlocksWithJsonArray(allBlocks);
                     config.theme = Blockly.Theme.defineTheme("leaphy", {
                         blockStyles: THEME.defaultBlockStyles,
                         categoryStyles: THEME.categoryStyles,
diff --git a/yarn.lock b/yarn.lock
index 770a5019..76bb45a4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1841,10 +1841,10 @@
   resolved "https://registry.yarnpkg.com/@leaphy-robotics/dfu-util-wasm/-/dfu-util-wasm-1.0.2.tgz#29afcc01266655e1c7b5da0eeceb0ead48c86fd7"
   integrity sha512-lvS+tJFO049b4ERYKX0HcoUtnQv76A1z9sZrAvbs7s3bvdMW0BObKmktZeJ7emcp3lU/+OJWsD2h0EY5rnkiNg==
 
-"@leaphy-robotics/leaphy-blocks@2.0.3":
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/@leaphy-robotics/leaphy-blocks/-/leaphy-blocks-2.0.3.tgz#ce9965433c59280d45fba0e6245895358ef249f3"
-  integrity sha512-dLw54rZ0Vr+G81hXyNqjb8VZqraObygSvZ2v5b4XmtuoPsXL7xERvPQcSLdRG2c1u+7iVSFOq/ZNvnXWP8/yqw==
+"@leaphy-robotics/leaphy-blocks@^2.1.0":
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/@leaphy-robotics/leaphy-blocks/-/leaphy-blocks-2.1.0.tgz#9f24ac65322634e808f6dd1ff74e1e0553ab1965"
+  integrity sha512-u9AlHl8I8njzqM+/yG39sWgeqFHlVuPXQK59uFdyStsSBk9IpF+e7Ogo13WdXV+ORB831NvyNlSOKNZQEFY/ag==
   dependencies:
     blockly "^10.4.3"