react-date-range icon indicating copy to clipboard operation
react-date-range copied to clipboard

shownDate changes do not change Calendar

Open tecfella opened this issue 3 years ago • 1 comments

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

I am changing the shownDate programatically and finding the shown calendar does not change.

I made the following changes to the code.

Here is the diff that solved my problem:

diff --git a/node_modules/react-date-range/dist/components/Calendar/index.js b/node_modules/react-date-range/dist/components/Calendar/index.js
index 79a1396..1ea074a 100644
--- a/node_modules/react-date-range/dist/components/Calendar/index.js
+++ b/node_modules/react-date-range/dist/components/Calendar/index.js
@@ -581,6 +581,10 @@ var Calendar = /*#__PURE__*/function (_PureComponent) {
         });
       }
 
+      if (prevProps.shownDate !== this.props.shownDate) {
+        this.changeShownDate(this.props.shownDate);
+      }
+
       if (!(0, _shallowEqual.shallowEqualObjects)(prevProps.scroll, this.props.scroll)) {
         this.setState({
           scrollArea: this.calcScrollArea(this.props)

This issue body was partially generated by patch-package.

tecfella avatar Feb 04 '22 11:02 tecfella

Another way to do this:

  1. define a ref for DateRange component and set the appropriate ref prop of DateRange;
  2. call dateRangeRef.current.calendar.changeShownDate(some new date);

Prooksius avatar Jan 10 '25 18:01 Prooksius