preliminary typescript rewrite and a bunch of fixes #348
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The performance was subpar for my use-case, since the code relied on a lot of dynamic recreation of objects inside the render, and styles, so I decided to fix this (related #340). since I use Typescript as my primary language, went ahead and fixed a bunch of edge cases that would not be spotted in plain JS code (and also "fixes" #345, #270, related #276).
I'm also using forwardRef, so
<SplitPane ref={ref} />
works. Had to exportPane
andResizer
for the types to work.The only issue is that I'm using React Hooks instead of classes, so this is definitely a breaking change for React projects stuck on old React versions. The code thrives on stable callbacks, that only
useCallback
hooks can provide, so people doing lambdas won't need to worry, since the inner callbacks are reference-stable.It also fixes using the component on new windows and when using createPortal (fixes #336)
If this PR is unwanted, I can keep using my fork, no issues.
TODO: convert tests to TS and fix them