[Bug] openinula-vchart ignores data prop when spec is provided
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
- Create an OpenInula VChart with both the documented
specanddataprops. - Keep
specunchanged. - Replace
datawith 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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