simonwep / selection

✨ Viselect - A high performance and lightweight library to add a visual way of selecting elements, just like on your Desktop. Zero dependencies, super small. Support for major frameworks!
https://simonwep.github.io/selection
MIT License
2.51k stars 147 forks source link

React package doesn't support changes to props #226

Open LordZardeck opened 6 months ago

LordZardeck commented 6 months ago

What is the problem?

When using the react package, if you have state changes to the props being passed to SelectionArea, those changes are not recognized. For example, if you want to use a ref on the container prop, if that container changes, Viselect doesn't recognize these changes.

What is the current behavior?

Changing a prop to the SelectionArea results in those changes not being recognized.

Please provide the steps to reproduce and create a CodeSandbox.

CodeSandbox Link

What is the expected behavior?

Whenever you change a prop, @viselect/react should be updating to use those new props

Your environment:

Toolset (e.g. webpack, vite, vue-cli...): 
Version (@viselect/<insert package>):
Browser:  
OS:  
LordZardeck commented 6 months ago

From my best guess, it's because of the empty dependency array in SelectionArea

simonwep commented 6 months ago

That was on purpose since the core module doesn't support dynamic option updates. The preact/react component would have to destroy the instance and re-create it. In your case adding a key should do the job... Or what would you expect to happen? And what do you mean with a "ref on the container prop" exactly? (sorry, it's been a while with react for me)