Skip to content

TypeError: Cannot set properties of undefined (setting 'cursor') #774

@MrCoder

Description

@MrCoder

Bug Description

There is a TypeError occurring when trying to set the cursor property on an undefined object in the application.

Error Details

Uncaught TypeError: Cannot set properties of undefined (setting 'cursor')
    at userscript.js:29:28

Root Cause

The error occurs in two locations where the code attempts to set app.store.state.cursor without properly checking if app.store and app.store.state exist:

  1. src/extension/script.js:20
if (app && (cursor !== null || cursor !== undefined)) {
  app.store.state.cursor = cursor; // Error: app.store.state is undefined
}
  1. src/computes.js:197
if(app && (cursor !== null || cursor !== undefined)) {
  app.store.state.cursor = cursor; // Error: app.store.state is undefined
}

Problem Analysis

While both code blocks check if app exists, they don't verify that app.store or app.store.state are defined before attempting to access them. This can happen when:

  • The ZenUML app hasn't fully initialized yet
  • The store hasn't been created or is in an invalid state
  • There's a timing issue between app creation and message handling

Proposed Solution

Add proper null/undefined checks before setting the cursor:

if (app && app.store && app.store.state && (cursor !== null || cursor !== undefined)) {
  app.store.state.cursor = cursor;
}

Files Affected

  • src/extension/script.js (line 20)
  • src/computes.js (line 197)

Impact

This error prevents proper cursor synchronization and may cause the application to fail silently when handling cursor position updates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions