Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(Ref): remove component #4286

Merged
merged 2 commits into from
Sep 24, 2021
Merged

chore(Ref): remove component #4286

merged 2 commits into from
Sep 24, 2021

Conversation

layershifter
Copy link
Member

@layershifter layershifter commented Sep 24, 2021

BREAKING CHANGE

This PR removes Ref component.

Internally it uses ReactDOM.findDOMNode() that has been deprecated in StrictMode (#3819). It's not supported in Concurrent mode, too ( ´・・)ノ(._.`)

This means that usage of .findDOMNode() will be problem with upcoming React 18.

Migration

We suggest to use .forwardRef() to utilize native ref forwarding. All components from Semantic UI React v3 will support it, so Ref component is not needed:

function App() {
-  return (
-    <Ref innerRef={buttonRef}>
-      <Button />
-    </Ref>
-  )
+  return <Button ref={buttonRef} />
}

As we exported Ref component and recommended its usage everywhere we moved out Ref component to a separate package (@semantic-ui-react/component-ref). This means that you can use it already with v2 or upcoming v3:

-import { Ref } from "semantic-ui-react";
+import Ref from "@semantic-ui-react/component-ref";

⚠ Notice

@semantic-ui-react/component-ref is considered as a deprecated package, we don't plan maintain it, so please consider migration anyway. It also will not receive fixes related to usage of deprecated APIs from React.

@codecov-commenter
Copy link

codecov-commenter commented Sep 24, 2021

Codecov Report

Merging #4286 (4dba9e6) into next-v3 (7328052) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff            @@
##           next-v3    #4286   +/-   ##
========================================
  Coverage    99.48%   99.48%           
========================================
  Files          186      186           
  Lines         3468     3468           
========================================
  Hits          3450     3450           
  Misses          18       18           
Impacted Files Coverage Δ
src/addons/Portal/PortalInner.js 100.00% <ø> (ø)
src/lib/hooks/useClassNamesOnNode.js 100.00% <ø> (ø)
src/modules/Dropdown/Dropdown.js 100.00% <ø> (ø)
src/modules/Popup/lib/createReferenceProxy.js 57.14% <ø> (ø)
src/modules/Sidebar/Sidebar.js 100.00% <ø> (ø)
src/modules/Sticky/Sticky.js 94.64% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7328052...4dba9e6. Read the comment docs.

@layershifter layershifter merged commit f3b4fe4 into next-v3 Sep 24, 2021
@layershifter layershifter deleted the chore/remove-ref branch September 24, 2021 12:43
layershifter added a commit that referenced this pull request Feb 1, 2022
* chore(Ref): remove component

* fix tests
layershifter added a commit that referenced this pull request Feb 18, 2022
* chore(Ref): remove component

* fix tests
layershifter added a commit that referenced this pull request Apr 22, 2022
* chore(Ref): remove component

* fix tests
layershifter added a commit that referenced this pull request Jun 21, 2022
* chore(Ref): remove component

* fix tests
layershifter added a commit that referenced this pull request Dec 12, 2022
* chore(Ref): remove component

* fix tests
@layershifter layershifter mentioned this pull request Dec 13, 2022
27 tasks
layershifter added a commit that referenced this pull request Dec 13, 2022
* chore(Ref): remove component

* fix tests
levithomason pushed a commit that referenced this pull request Feb 28, 2023
* chore: remove .state() assertions in tests (#4232)

* Ember: remove .state() usage in Enzyme

* AccordionAccordion: remove .state() usage in Enzyme

* Checkbox: remove .state() usage in Enzyme

* TransitionablePortal: remove .state() usage in Enzyme

* Transition: remove .state() usage in Enzyme

* Dropdown: remove .state() usage in Enzyme

* chore(Image): use React.forwardRef() (#4234)

* chore(Placeholder): use React.forwardRef() (#4236)

* chore(Header): use React.forwardRef() (#4237)

* chore(Segment): use React.forwardRef() (#4238)

* chore(Table): use React.forwardRef() (#4239)

* chore(Table): use React.forwardRef()

* fix naming

* chore(Step): use React.forwardRef() (#4240)

* chore: disable ESLint rule for function names (#4241)

* chore(Comment): use React.forwardRef() (#4242)

* chore(Comment): use React.forwardRef()

* fix displayName

* fix tests

* chore(Card): use React.forwardRef() (#4243)

* chore(Feed): use React.forwardRef() (#4244)

* chore(Statistic): use React.forwardRef() (#4245)

* chore(Item): use React.forwardRef() (#4247)

* chore(Container|Divider|Loader|Rail): use React.forwardRef() (#4248)

* chore(Accordion): use React.forwardRef() (#4249)

* chore(Advertisement|Breadcrumb): use React.forwardRef() (#4250)

* chore(Message): use React.forwardRef() (#4251)

* chore(Label|List): use React.forwardRef() (#4252)

* chore(Menu): use React.forwardRef() (#4254)

* chore(Pagination): use React.forwardRef() (#4255)

* chore(Button): use React.forwardRef() (#4256)

* chore(Modal|Portal|Popup): use React.forwardRef() (#4253)

* chore(Modal|Portal): use React.forwardRef()

* remove redundant statics

* migrate Popup

* chore(Rating|Reveal): use React.forwardRef() (#4258)

* chore(Dimmer|Grid|Sidebar): use React.forwardRef() (#4260)

* chore(Modal*|Popup*): use React.forwardRef() (#4261)

* chore(Confirm|Checkbox|Embed|Radio|TextArea): use React.forwardRef() (#4262)

* chore(Flag|Icon|ImageGroup): use React.forwardRef() (#4264)

* chore(Tab): use React.forwardRef() (#4265)

* chore(TransitionGroup): use React.forwardRef() (#4266)

* chore(Input): use React.forwardRef() (#4267)

* chore(Sticky): use React.forwardRef() (#4263)

* chore(TransitionablePortal): convert to be functional component (#4269)

* chore(Search*): use React.forwardRef() (#4270)

* chore(Dropdown*): use React.forwardRef() (#4273)

* chore(Dropdown*): use React.forwardRef()

* fix examples-test

* chore(Visibility): remove component (#4257)

* chore(Visibility): remove component

* remove behaviors section

* chore(Ref): remove component (#4286)

* chore(Ref): remove component

* fix tests

* chore(Search): use React.forwardRef() (#4330)

* chore(Search): use React.forwardRef()

* add test for ref forwarding

* fix tests, add comments

* chore: refactor Modal tests (#4339)

* chore: remove unused test utils (#4340)

* chore: refactor tests for classnames to use mount() (#4341)

* chore: refactor tests for shorthands to use mount() (#4342)

* chore: refactor tests for shorthands to use mount()

* add comment

* fix tests with unmount

* fix(Dropdown): use ref forwarding (#4338)

* Add forward ref to Form (#4364)

* Convert form to function component

* Add ref forwarding to Form component

* Update test/specs/collections/Form/Form-test.js

Co-authored-by: Oleksandr Fediashov <alexander.mcgarret@gmail.com>

Co-authored-by: Oleksandr Fediashov <alexander.mcgarret@gmail.com>

* Add ref to components (#4373)

* Add ref to FormButton

* Add ref to FormCheckbox

* Add forwardRef to FormGroup

* Remove accidental `only` calls

* chore(FormField): use React.forwardRef() (#4359)

* Add ref to form field component

* Move ref to controlProps

* Add more forwardsRef tests

* Remove unnecessary describe wrapper

* update tests

Co-authored-by: Oleksandr Fediashov <olfedias@microsoft.com>

* chore(FormTextArea): use React.forwardRef() (#4405)

* chore(FormRadio): use React.forwardRef() (#4406)

* chore(FormInput): use React.forwardRef() (#4407)

* chore(Select,FormSelect,FormDropdown): use React.forwardRef() (#4408)

* chore(Select): use React.forwardRef()

* chore(FormSelect): use React.forwardRef()

* chore(FormDropdown): use React.forwardRef()

* fix tests, fix Dropdown component

Co-authored-by: Oleksandr Fediashov <olfedias@microsoft.com>

---------

Co-authored-by: Brandon Olivier <brandon@brandonolivier.com>
Co-authored-by: Felix Mosheev <9304194+felixmosh@users.noreply.github.com>
avsd added a commit to avsd/react-semantic-ui-datepickers that referenced this pull request Mar 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants