/** * @license * Copyright 2023 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import * as Blockly from 'blockly/core'; const storageKey = 'mainWorkspace'; /** * Saves the state of the workspace to browser's local storage. * @param {Blockly.Workspace} workspace Blockly workspace to save. */ export const save = function (workspace) { const data = Blockly.serialization.workspaces.save(workspace); window.localStorage?.setItem(storageKey, JSON.stringify(data)); }; /** * Loads saved state from local storage into the given workspace. * @param {Blockly.Workspace} workspace Blockly workspace to load into. */ export const load = function (workspace) { const data = window.localStorage?.getItem(storageKey); if (!data) return; // Don't emit events during loading. Blockly.Events.disable(); Blockly.serialization.workspaces.load(JSON.parse(data), workspace, false); Blockly.Events.enable(); };