Open layershifter opened 1 year ago
@layershifter what is the status user.React.forwardRef PR status? I see it is still in open
@vinodhrajamuralidharan I had a conversation with @levithomason about that PR. The agreement was that he will review it and then we can proceed. I am also waiting for that PR to be merged π
Is there any ETA on v3 progress @levithomason / @layershifter ? There was such a great traction in December, so I started to get my hopes up for SUIR again π€ Would hate to see it stall again, with all the great work that has been put in to it π
3.0.0-beta.0
is out π Please try and report issues π
Thanks a lot @layershifter for the effort! I didn't run into any issues yet with the beta besides the probably expected Typescript issues such as https://stackblitz.com/edit/react-ts-ejdyij?file=App.tsx.
Is there anything further that we can help test, in order to proceed with the v3 release?
@layershifter could you please update the status? FYI @levithomason
Document breaking changes
that is not checked?@tourman
1/2. Yes, it's relevant. I will update it to be more precise and detailed π
@layershifter thank you for all you great work so far, highly appreciate your effort!
This project is too good to just die, so I really hope someone wants to pick up from here. Would love to support if I can, not experienced enough to contribute with code though. If any freelancers are considering, I would gladly pay for some of your time to get the ball rolling on this again.
Thanks a lot @layershifter for the effort! I didn't run into any issues yet with the beta besides the probably expected Typescript issues such as https://stackblitz.com/edit/react-ts-ejdyij?file=App.tsx.
@DreierF it's indeed a bug, see #4432 for details.
Is there anything further that we can help test, in order to proceed with the v3 release?
@sunech @tourman I updated changelog and created migration guide (https://react.semantic-ui.com/migration-guide). I also updated issues that needs to be solved to release the next beta. Both issues contain action items and examples of changes needed to be done.
Help on these issues is much appreciated π±
@layershifter thanks for your work on this package, do you have approximate time when you plan to release 3.0 version?
3.0.0-beta.2
is out π
It fixes .defaultProps
warnings, TypeScript typings & issues with appDir
in Next.js.
Please try and report issues π
I can report that after making a few small changes all frontend unit tests of Quality-time pass with 3.0.0-beta.2:
Test Suites: 85 passed, 85 total
Tests: 694 passed, 694 total
Snapshots: 0 total
Time: 67.751 s, estimated 70 s
Most changes were needed because popups would not appear at the right position with 3.0.0-beta.2. Adding a span or div around triggers solved this. I can't reproduce this issue on the Semantic UI React documentation site so I guess it's an issue on our side.
I don't think that it's worth creating a issue but the Sticky component didn't work after the upgrade. I needed to add scrollContext
because there is a scrollable div instead of whole window. I am not sure if it's somehow breaking change or I had it wrong even before. I am just mentioning as a possible information to migration guide.
I can report that after making a few small changes all frontend unit tests of Quality-time pass with 3.0.0-beta.2:
Test Suites: 85 passed, 85 total Tests: 694 passed, 694 total Snapshots: 0 total Time: 67.751 s, estimated 70 s
Most changes were needed because popups would not appear at the right position with 3.0.0-beta.2. Adding a span or div around triggers solved this. I can't reproduce this issue on the Semantic UI React documentation site so I guess it's an issue on our side.
This seems to also be an issue on our side. Started with the transition to beta.2 and adding a span around it indeed fixed it
@layershifter - I fixed the first task in the beta-3 release. Could you please add issues for the rest of tasks in the list and I'll see if I can have a go at some of them? Would be nice to get v3 out!
When is the v3 release scheduled for?
When is the v3 release scheduled for?
Outside of the eventStack breaking change, it looks like it is just a lot of testing and documentation for the 3.0.0 beta 3 release. I'm not sure if @layershifter is taking pull requests, but maybe some in the community can assist.
I'm not sure if @layershifter is taking pull requests, but maybe some in the community can assist.
Yep, if somebody is brave enough to get rid of EventStack
, I would be happy to review the changes.
@layershifter Would you consider just going with the current state as version 3 and then working on the rest as version 4?
Only reason is that so many people are getting the props
and other javascript warnings now and they don't know that the version 3 beta solves them. Running outdated
on npm sources wouldn't show the version 3 beta. Might be a good way to keep the upgrades occurring so that a few more community members may jump in on EventStack
.
Just a thought, unless someone is about there on EventStack.
@triemstr I am up to looking into the EventStack however there might be one more thing blocking the release that needs to be fixed: https://github.com/Semantic-Org/Semantic-UI-React/pull/4233/files#r1837715017
@layershifter So few past days, I've been looking into the EventStack in the Modal (and source code of the event-stack) and there is the thing "eventPool". As I think that I understand that it might help keeping multiple references to same callback (I imagine some independent unsubscribing), I can't really see the real purpose of it (or what and if something would break after removing it).
Could you possibly give me some hint or direction or use case where it's necessary?
@dominikdosoudil My previous attempt there #3734 (ignore it, just to provide a perspective). The EventStack
pattern is so fundamentally broken that itβs not even worth explaining what it does π©. The eventPool
prop should definitely be removed.
Let me break down the complexity behind this issue. The .contains()
method is used to determine whether to close a Modal
(for example) on an inside or outside click. This works well in straightforward cases like the following (e.g., clicking a button):
// JSX
<Modal>
<Button />
</Modal>
// HTML
<body>
<div class="ui modal">
<button class="ui button"></button>
</div>
</body>
However, it fails in nested scenarios. For example:
// JSX
<Modal>
<Popup>
<Button />
</Popup>
</Modal>
// HTML
<body>
<div class="ui modal">
</div>
<div class="ui popup">
<button class="ui button"></button>
</div>
</body>
In this case, the ui popup
is not a child of ui modal
, causing .contains()
to break. A more detailed explanation of this issue can be found here: Virtual Parents.
To address this, I propose the following steps:
cypress/integration/Sidebar/Sidebar.spec.js
as an example). Hope this helps.
@layershifter I see, the nesting is tricky. Converted #4504 to draft. I am gonna look into it and decide if i am "brave enough" after all. π
Thank you for explaining it.
This PR tracks work for Semantic UI React v3 π
Pre beta-0 β
ta-scripts
withrelease-it
For beta-0 β
Ref
component #4286Visibility
component #4257Input
,Button
&TextArea
are forwarding refs to native elementsTransition
static props #4266Post beta-0 β
For beta-2 β
.defaultProps
#4426, see https://github.com/Semantic-Org/Semantic-UI-React/issues/4426#issuecomment-1627680271ref
forwarding #4432, see https://github.com/Semantic-Org/Semantic-UI-React/issues/4432#issuecomment-1627741193For beta-3
eventStack
validateTrigger
should handleforwardRef
.displayName
in productionuse
)For RC
After release