VisActor / VisActor/VChart

[Bug] openinula-vchart ignores data prop when spec is provided

Open
#4,657 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.8k
Forks
221
Avg merge
1d 6h
Merged PRs (30d)
26

Description

Version

@visactor/openinula-vchart on develop at 0750d74cd6ea734e66897876506c78ca12680676

Link to Minimal Reproduction

Render <VChart spec={stableSpec} data={firstData} />, then re-render it with the same spec object and a different data value.

Steps to Reproduce
  1. Create an OpenInula VChart with both the documented spec and data props.
  2. Keep spec unchanged.
  3. Replace data with a new dataset and re-render.
Current Behavior

BaseChart enters the hasSpec branch and compares only eventsBinded.current.spec with props.spec. Because the spec is unchanged, the effect returns without updating the chart. parseSpec also does not merge the separate data prop into spec, so the data prop is ignored on initial creation as well.

Expected Behavior

The OpenInula wrapper should honor its declared data prop with a supplied spec, both initially and on data-only updates.

Environment
  • OS: Windows 11
  • Node.js: 20.20.2 and 24.14.1
  • Package: @visactor/openinula-vchart
Any additional comments?

The React wrapper already implements the intended behavior: it merges data into a supplied spec and calls updateFullDataSync when only data changes. That support was added in commit d69cb49fb for #2443, but the equivalent logic is absent from the OpenInula wrapper. The OpenInula package currently has no focused tests for this lifecycle path, so a port should add coverage for both initial and data-only updates.

I searched open and closed issues and pull requests for OpenInula data updates, hasSpec, BaseChart, and updateFullDataSync; I reviewed #2443 and both wrappers' histories. #2443 is specifically about react-vchart and its fix did not update openinula-vchart. The repository has no Discussions, and I found no existing OpenInula report or fix.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the OpenInula wrapper's BaseChart and parseSpec paths, then compare them with the React wrapper's handling of supplied data and updateFullDataSync. Add focused coverage for initial creation with both spec and data, and for data-only updates while spec is unchanged. Done means both cases update the rendered chart with the new dataset.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
data-visualization, frontend, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.