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

Fix infinite loop #320

Merged
merged 1 commit into from
Dec 7, 2019
Merged

Conversation

mfedderly
Copy link
Contributor

Popper.js' componentDidUpdate fails the props change test, which calls updatePopperInstance, which eventually causes componentDidUpdate to get called again. By using a deepEquals comparison on props.modifiers we correctly determine that the props did not update, and break the loop.

I don't have a nice simple repro for this issue, but it seems to only trigger in a complicated app on Chrome (at least 70.x->78.x) on Windows when the page's zoom level is less than 100%.

@DanHarman
Copy link

I have this happening in our app and for us it only happens at precisely 75% zoom in chrome. We are using a blueprint datepicker but I can't repro on their test page.

Popper.js' componentDidUpdate fails the props change test, which calls updatePopperInstance, which eventually causes componentDidUpdate to get called again.
By using a deepEquals comparison on modifiers we correctly determine that the props did not update, and break the loop.
@mfedderly mfedderly force-pushed the mf/fix-infinite-loop branch 2 times, most recently from a9a9d38 to f99ffee Compare November 23, 2019 18:37
@mfedderly
Copy link
Contributor Author

@FezVrasta any chance you could look at this PR?

@jalessio
Copy link

jalessio commented Dec 6, 2019

This patch resolves reproducible browser freeze (CPU in busy loop) in our app which uses Blueprint. My reproducible test case involves running Chrome on Windows at 75% zoom (as mentioned by @DanHarman above).

I will note that we are also getting reports of similar issues at 100% zoom. I'm hopeful this fix will help there as well, but I haven't been able to reliably reproduce that issue yet.

@FezVrasta FezVrasta merged commit 47677e9 into floating-ui:master Dec 7, 2019
mdanka added a commit to mdanka/blueprint that referenced this pull request Dec 9, 2019
@styu
Copy link

styu commented Dec 9, 2019

Any chance we can get a patch release with this fix? We'd love to update to fix the freeze issues we've been seeing in our apps!

@FezVrasta
Copy link
Member

1.3.7, there you go.

Thanks again for the help everybody!

@schlosna
Copy link

schlosna commented Dec 9, 2019

@FezVrasta thank you!

styu pushed a commit to palantir/blueprint that referenced this pull request Dec 9, 2019
* Update react-popper to include the fix from floating-ui/react-popper#320

* Update popper to 1.3.7

* Dedupe

* Yarn fix

* Yarny yarn

* Yo yo yarn
crispamares added a commit to graphext/blueprint that referenced this pull request Apr 2, 2020
* [OverflowList] Always re-render items (palantir#3278)

* Allow overriding of heading typography in Sass (palantir#3283)

* [TimezonePicker] Support a custom target via <children> (palantir#3287)

* Export getTimezoneMetadata(), add default value for date parameter

* Support one custom child in <TimezonePicker>

* Update example

* Update tests

* (nit) Rename to CustomTimezonePickerTarget

* Add more docs about possibly ignored props

* Update docs

* Respond to @giladgray CR

* Create CHANGELOG.md

* Suggest query remains when closed if nothing is selected. (palantir#3289)

* Allow shortcuts to change time in Date Range Picker (palantir#3223)

* Allow date range shortcuts to change time

* Address PR comments

* lint

* [Suggest] add `disabled` and `resetOnClose` props (palantir#3292)

* add Suggest resetOnClose prop a la Select

* add Suggest disabled prop

* add resetOnClose switch to example

* docs note

* [QueryList] Initialize activeItem state correctly based on prop. (palantir#3290)

* Initialize QueryList's activeItem state correctly based on prop.

* Fix comment typo

* Code cleanup

* [PanelStack] Allow any prop type for initial panels (palantir#3295)

* [Tooltip] allow HOVER interactions (palantir#3291)

* [Tag] fill & [TagInput] intent props (palantir#3237)

* add Tag fill prop

* add TagInput intent prop

* add tag fill styles & example switch

* docs: Fix link to Popover (palantir#3300)

* Add directory details to packages/*/package.json (palantir#3301)

Specifying the directory as part of the `repository` field in a `package.json`
allows third party tools to provide better support when working with monorepos.
For example, it allows them to correctly construct a commit diff for a specific
package.

This format was accepted by npm in
[npm/rfcs#19](npm/rfcs#19).

* Add directory to repository details in package.json files (palantir#3299)

Specifying the directory as part of the `repository` field in a `package.json`
allows third party tools to provide better support when working with monorepos.
For example, it allows them to correctly construct a commit diff for a specific
package.

This format was accepted by npm in npm/rfcs#19.

* [select] Add optional "itemsEqual" comparator prop to QueryList and related components (palantir#3285)

* Improve QueryList and related components to support optional
equality test implementation for non-primitive item types.

* Revert change to use undefined for representing no selection

* Finish revert change to use undefined for representing no selection

* Remove TODO

* Remove unnecessary param documentation

* Rename "areValuesEqual" prop to "itemsEqual"

* Improve "itemsEqual" prop to also support a property name.

* Documentation typos

* Documentation improvements

* Update copyright year in new file

* Rename new unit test file

* [DRP] Shortcuts support changing time & docs (palantir#3293)

* shortcut shouldChangeTime => includeTime

* revert unnecessary test changes

* add Shortcuts docs to DRP

* Publish

 - @blueprintjs/core@3.12.0
 - @blueprintjs/datetime@3.7.0
 - @blueprintjs/docs-theme@3.0.4
 - @blueprintjs/icons@3.5.1
 - @blueprintjs/karma-build-scripts@0.9.1
 - @blueprintjs/labs@0.16.3
 - @blueprintjs/node-build-scripts@0.8.1
 - @blueprintjs/select@3.6.0
 - @blueprintjs/table@3.4.1
 - @blueprintjs/test-commons@0.8.1
 - @blueprintjs/timezone@3.3.0
 - @blueprintjs/tslint-config@1.7.1
 - @blueprintjs/webpack-build-scripts@0.7.1

* [select] consistency refactors (palantir#3305)

* code consistency across `select` components:

- public state = ... (not inconstructor)
- non-optional refs
- safeInvokeMember to reduce destructuring

* fix tests, explicit null check

* dedupe shortcuts prop types (palantir#3311)

* [NumericInput] allows min === max (palantir#3296)

* NumericInput allows min === max

* add test

* [NumericInput] new rightElement prop (palantir#3314)

* Update select-component.md (palantir#3319)

* Fixing typo (palantir#3318)

Missing "and"

* Added new inbox icons (palantir#3335)

* [docs] click to download sketch files from Resources page (palantir#3334)

* click to download sketch files from Resources page

* lint

* use /raw/ url to download actual file

* rename resource files so they download correctly

* add "Missing fonts?" callout

* minor style polish

* Add internal text to switch component (palantir#3327)

* switch text v0

* font size a bit smaller

* add an example of internal text property

* test

* cleanup

* lint fixes

* review comments

* remove whitespace in tests

* more review comments

* even more review changes

* remove errant property

* restore comment

* update prop docs

* additional tests

* remove unnecessary checks

* [Spinner] SIZE_SMALL = 20 (palantir#3342)

* Spinner.SIZE_SMALL = 20

* fix isotest

* [NumericInput] countDecimalPlaces for number type (palantir#3337)

Fixes palantir#3336

* New Drawer component (palantir#2957)

* add files

* fixed styling

* dark theme added

* Added vertical orientation

* changed viewport units

* Added small and large sizes

* Standardized sizing

* backdrop fixed

* add tests

* small/large => one size prop

* update size constants

* add hasBackdrop switch to example

* use Drawer for API browser

* size prop docs

* fix isotest

* add size+vertical tests, actually run suite

* [DatePicker] fix onChange on month change after initial day selection (palantir#3343)

* fix onChange doesn't fire on month change after initial day selection
Fixes palantir#3340

* change !== to != operator

* add test onChange fired when month is changed for uncontrolled datepicker

* Publish

 - @blueprintjs/core@3.13.0
 - @blueprintjs/datetime@3.7.1
 - @blueprintjs/icons@3.6.0
 - @blueprintjs/select@3.6.1

* Corrected the type of Popover's onInteraction prop (palantir#3348)

* ButtonGroup supports "fill" prop when Buttons are wrapped in Popovers (palantir#3347)

* 🔧 upgrade tslint (palantir#3315)

* Fix shortcuts.tsx react import typings (palantir#3356)

* [Tabs] add panelClassName prop (palantir#3351)

* Fix lint (palantir#3374)

* [Core] Fixed not applying intent color for icon inside tree node (palantir#3355)

* [Core] Add option to make tree node disabled (palantir#3354)

* Drawer default prop warning fix (palantir#3382)

* [Select] Create-able Select components (palantir#3381)

* Upgrade dev dependencies and types (palantir#3370)

* Publish

 - @blueprintjs/core@3.14.0
 - @blueprintjs/docs-app@3.14.0
 - @blueprintjs/select@3.7.0

* [Core] Overlay: fix transitionDuration documentation (palantir#3391)

* [Core] Fix react types regression (palantir#3390)

* Publish

 - @blueprintjs/core@3.14.1
 - @blueprintjs/docs-app@3.14.1

* Publish

 - @blueprintjs/datetime@3.7.2

* [Core] Checkbox: fix indeterminate state update (palantir#3409)

Fixes palantir#3408

* Minor README updates

* [Core] Docs: fix small typo (palantir#3411)

"accomodate" to "accommodate"

* [Docs] Overlay Example: add option to test scrolling behavior (palantir#3406)

* Update Bug_report.md

* [datetime] docs: fix react-day-picker API hyperlink (palantir#3435)

* [core] TagInput: use undefined instead of null to hide clearButton (palantir#3436)

* [Select] hide QueryList item list when menuContent and createItemView are both null (palantir#3426)

* [MultiSelect] Enable pasting of multiple values (same as TagInput) (palantir#3428)

* [Core] Add z-index to panel stack header (palantir#3414)

* [Core] Add option to grow text area with input (palantir#3398)

* [Core] TextArea: fix style object regression (palantir#3440)

* [Core] Add position prop to Drawer component, deprecate vertical prop (palantir#3386)

* [Table] Fix resizable props documentation (palantir#3400)

* Switch to standard Apache-2.0 license (palantir#3457)

* [table] Fix documentation to use the right css file name (palantir#3452)

* Prepare release v3.15.0 (palantir#3458)

* Publish

 - @blueprintjs/core@3.15.0
 - @blueprintjs/datetime@3.8.0
 - @blueprintjs/docs-app@3.15.0
 - @blueprintjs/docs-theme@3.1.0
 - @blueprintjs/icons@3.7.0
 - @blueprintjs/karma-build-scripts@0.10.0
 - @blueprintjs/node-build-scripts@0.9.0
 - @blueprintjs/select@3.8.0
 - @blueprintjs/table@3.5.0
 - @blueprintjs/test-commons@0.9.0
 - @blueprintjs/timezone@3.4.0
 - @blueprintjs/tslint-config@1.8.0
 - @blueprintjs/webpack-build-scripts@0.8.0

* [Core] File input text styling for active selections (palantir#3375)

* [Icons] Added new inheritance icon (palantir#3451)

* Added new inheritance icon

* Updated content per CR

* Update font files

* Fix typo in bug report template

* [datetime] Fix DateInput IE11 bug when changing month/day (palantir#3471)

* Upgrade react-day-picker, fix caption months support, regen lockfile (palantir#3461)

* Publish

 - @blueprintjs/core@3.15.1
 - @blueprintjs/datetime@3.9.0
 - @blueprintjs/docs-app@3.15.1
 - @blueprintjs/icons@3.8.0

* [core] Fix NumericInput documentation of initial state value (palantir#3484)

* Upgrade documentalist, refactor CI config (palantir#3482)

* Publish

 - @blueprintjs/docs-app@3.15.2
 - @blueprintjs/docs-theme@3.2.0

* [docs] Fix accidental markdown strikethrough (palantir#3493)

- Incorrectly showed up as strikethrough text on https://blueprintjs.com/docs/#core/components/popover

* [datetime] [bugfix] Hover over date no longer clears time input (palantir#3502)

* [datetime] [bugfix] render the correct month when DRP singleMonthOnly is enabled (palantir#3504)

* [Icons] Added new UI icons (palantir#3510)

* [Select] Change activeItem when items change (palantir#3496)

* [datetime] Fix DRP inconsistency with single day ranges and time precision enabled (palantir#3557)

* Prepare datetime, icons, select release (palantir#3565)

* Publish

 - @blueprintjs/datetime@3.9.1
 - @blueprintjs/icons@3.9.0
 - @blueprintjs/select@3.8.1

* [docs-app] fix scrolling of interface definition drawer (palantir#3576)

* [core] Improve dark muted and disabled text contrast (palantir#3584)

* Fix docs rendering of mixed HTML / markdown content (palantir#3585)

* [dependencies] Bump js-yaml, cssnano, svgo

* [core] Fix number of clicks required to use HTMLSelect inside ControlGroup in Firefox (palantir#3568)

* [table] add editableTextProps to allow adjusting cells during editing (palantir#3350)

* [core] fix TagInput tags overflowing their container (palantir#3591)

* [core] Fix intent color for Icons inside Tree component in dark mode (palantir#3598)

* [core] Allow hiding panel stack header (palantir#3600)

* Update abstract button props to match react's. (palantir#3608)

React recently updated the typings for HTML button from 'string'
to a more limited union. See:
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts#L1848
for the current types.

* [core] docs: use Pre component in Collapse example (palantir#3610)

* [core] Add controlled mode to PanelStack (palantir#3601)

* [datetime] feat(DateRangeInput): add support for disabling start or end input (palantir#3607)

* [table] feat(RowHeaderCell): Add support for nameRenderer (palantir#3447)

* Publish

 - @blueprintjs/core@3.16.0
 - @blueprintjs/datetime@3.10.0
 - @blueprintjs/docs-app@3.16.0
 - @blueprintjs/table@3.6.0

* Upgrade testing infrastructure (palantir#3615)

* Publish

 - @blueprintjs/core@3.16.1
 - @blueprintjs/karma-build-scripts@0.11.0
 - @blueprintjs/node-build-scripts@0.10.0

* Fix up inter-package dependencies

* Publish

 - @blueprintjs/core@3.16.2

* [tslint-config] Fix suggestion for <table> element replacement (palantir#3624)

* [datetime] Fix typing values into TimePicker's fields (palantir#3613)

* [docs-app] Fix minor bug in upload toast example (palantir#3626)

* [core] docs: add caveat about tooltip target element (palantir#3620)

* [select] bugfix(Select): fix keyboard navigation when all items disabled (palantir#3627)

* [select] fix: do not call itemRenderer when Select is disabled (palantir#3629)

* [core] fix(Toast): long words in toast messages no longer break container layout (palantir#3634)

* Various documentation fixes (palantir#3635)

* [core] fix(Switch): tweak dark theme hover/active colors (palantir#3637)

Fixes palantir#3599

* Split karma testing into more CI containers (palantir#3638)

* [core, select] feat: add fill prop to Popover, InputGroup, Suggest, MultiSelect (palantir#3636)

* Publish

 - @blueprintjs/core@3.17.0
 - @blueprintjs/datetime@3.10.1
 - @blueprintjs/docs-app@3.17.0
 - @blueprintjs/select@3.9.0
 - @blueprintjs/tslint-config@1.8.1

* [ci] fix: persist lib files when building dist

* Publish

 - @blueprintjs/core@3.17.1

* [datetime] feat(DatePicker): add option to highlight current day (palantir#3628)

* Publish

 - @blueprintjs/datetime@3.11.0
 - @blueprintjs/icons@3.9.1

* [core] feat(FileInput): add buttonText prop (palantir#3560)

* [core] fix(HotkeysTarget): invoke user-defined key event handlers correctly (palantir#3645)

* [core] fix(TextArea): grow box vertically to show initial content (palantir#3647)

* [table] fix EditableCell update cycle, improve EditableName docs (palantir#3649)

* [datetime] fix(DateRangeInput): maintain focus on time inputs during key interactions (palantir#3644)

* fix: restrict tslib dependency to minor version range

* chore: upgrade non-react typings

* [docs-app] feat(DateRangeInputExample): time picker toggle

* chore: upgrade to typescript 3.2 (palantir#3653)

* chore: upgrade to typescript 3.5.3 (palantir#3654)

* chore: upgrade documentalist (palantir#3656)

* [datetime] fix(DRI): do not close on selection when time inputs receive key presses (palantir#3658)

* [core] fix(EditableText): support selectAllOnFocus with type=number in latest React (palantir#3672)

* fix: correctly declare react peer deps in package.json (palantir#3676)

* [core] fix(Popover): only apply active class to target in uncontrolled mode (palantir#3677)

* [docs-app] create "Design Principles" section, mention CSS API contract (palantir#3678)

* chore: upgrade dependencies, delete labs package (palantir#3679)

* Publish

 - @blueprintjs/core@3.18.0
 - @blueprintjs/datetime@3.12.0
 - @blueprintjs/docs-app@3.18.0
 - @blueprintjs/docs-data@3.16.0
 - @blueprintjs/docs-theme@3.3.0
 - @blueprintjs/icons@3.10.0
 - @blueprintjs/karma-build-scripts@0.12.0
 - @blueprintjs/landing-app@3.16.0
 - @blueprintjs/node-build-scripts@0.11.0
 - @blueprintjs/select@3.10.0
 - @blueprintjs/table-dev-app@3.1.0
 - @blueprintjs/table@3.7.0
 - @blueprintjs/test-commons@0.10.0
 - test-react15@1.1.1
 - @blueprintjs/timezone@3.5.0
 - @blueprintjs/tslint-config@1.9.0
 - @blueprintjs/webpack-build-scripts@0.9.0

* chore: minor adjustment to vscode settings

* [core] fix(Drawer): use Sass variable $drawer-padding (palantir#3689)

Correcting use of $dialog-padding to $drawer-padding

* [core] feat: support create-react-app environment variable (palantir#3691)

Allows create-react-app users to set a custom blueprint namespace more easily.

* [table] fix(EditableCell): support tabIndex prop correctly (palantir#3687)

* [core] docs(Popover) fix import statements (palantir#3708)

* chore: Update Lerna URL in Readme (palantir#3715)

* [core] fix(Popover): click on target no longer affects hover behavior (palantir#3716)

* [core] fix(AnchorButton): left text alignment (palantir#3713)

* [datetime] feat(DateRangePicker): add active menu styles to shortcuts (palantir#3688)

* [datetime] fix: upgrade react-day-picker, clean up type imports (palantir#3725)

* [core] docs: add missing closing angle bracket (palantir#3714)

* chore: update code sandbox to latest package versions

* [core] fix(MenuItem): avoid React warning for unknown attr labelClassName (palantir#3730)

* Publish

 - @blueprintjs/core@3.18.1
 - @blueprintjs/datetime@3.13.0
 - @blueprintjs/docs-app@3.18.1
 - @blueprintjs/table@3.7.1

* [core] docs(Toaster): fix position prop comment (palantir#3657)

* [icons] feat: add learning, new layer(s), stopwatch icons (palantir#3745)

* [core] fix(MultiSlider): fix rendering bug with track fill (palantir#3733)

* Refactor to use React 16.3+ lifecycle methods (palantir#3702)

* [datetime] fix(TimePicker): allow more natural text entry (palantir#3762)

* [select] fix(Suggest): Default autoComplete for text input to "off" (palantir#3724)

* [core] feat(Tab): spread HTML props to rendered div (palantir#3766)

* Publish

 - @blueprintjs/core@3.19.0
 - @blueprintjs/datetime@3.14.0
 - @blueprintjs/docs-app@3.19.0
 - @blueprintjs/docs-theme@3.4.0
 - @blueprintjs/icons@3.11.0
 - @blueprintjs/select@3.11.0
 - @blueprintjs/table@3.8.0
 - @blueprintjs/timezone@3.6.0

* fix: lifecycle methods in MultiSlider, Resizable, and TableBodyCell (palantir#3771)

* Publish

 - @blueprintjs/core@3.19.1
 - @blueprintjs/table@3.8.1

* [select] fix(QueryList): re-render when controlled items change (palantir#3776)

* Publish

 - @blueprintjs/select@3.11.1

* [core] fix(Toast): fix bottom toast animation (palantir#3784)

* [core] feat(Breadcrumb): render icon if provided through props (palantir#3786)

* [core] fix(NumericInput): correct styles when placed inside label (palantir#3809)

* [core] fix(PanelStack): do not trigger unintended animations (palantir#3787)

* [core] docs: fix spelling of "dropdown" (palantir#3806)

* chore: use latest tree-sitter-typescript from github (palantir#3812)

* [core] fix(TagInput): prevent infinite setState in componentDidUpdate (palantir#3811)

* chore: remove commented code

* [core] fix(InputGroup): prevent infinite setState in componentDidUpdate (palantir#3813)

* [icons] feat: new icons (palantir#3816)

- New drawing
- Data lineage
- Archive
- Unarchive
- Signal search

* [core] feat(Toaster): ability to set max number of active toasts (palantir#3770)

* [datetime] feat: export IDateRangeInputProps (palantir#3821)

* [core] fix(NumericInput): do not trigger onValueChange if value is changed via props (palantir#3814)

* [datetime] feat(DateInput): add fill prop (palantir#3777)

* [datetime] feat: add shortcuts to single date picker (palantir#3818)

* [table] fix: cell copy to clipboard works in IE11 (palantir#3764)

* [core] fix(Collapse): simplify lifecycle, fix animation bugs (palantir#3831)

* [select] fix(MultiSelect): better handling of key events in Tag… (palantir#3836)

* [core] fix(Switch): indicator background colors (palantir#3828)

* Publish

 - @blueprintjs/core@3.20.0
 - @blueprintjs/datetime@3.15.0
 - @blueprintjs/docs-app@3.20.0
 - @blueprintjs/icons@3.12.0
 - @blueprintjs/select@3.11.2
 - @blueprintjs/table@3.8.2
 - @blueprintjs/test-commons@0.10.1

* [datetime] fix(Shortcuts): make shortcuts container focusable (palantir#3843)

* Publish

 - @blueprintjs/datetime@3.15.1

* [core] feat(EditableText): add alwaysRenderInput experimental feature (palantir#3841)

* [core] feat(Drawer): add Sass variables for background color (palantir#3857)

* chore: update dev env prerequisites

* [core] fix(TagInput): add intent styling when component is active (palantir#3855)

* Publish

 - @blueprintjs/core@3.21.0
 - @blueprintjs/docs-app@3.21.0

* [core] fix: Explicitly declare dom4 side effects (palantir#3867)

* [core] chore: isolate dom4 import to its own module (palantir#3868)

* [core] feat: high contrast CSS with color adjustments to pass WCAG requirements (palantir#3862)

* Publish

 - @blueprintjs/core@3.22.0
 - @blueprintjs/docs-app@3.22.0

* Fix PanelStack (palantir#3879)

Approving since only test failures are unrelated

* Fix DatePicker unit test (palantir#3880)

DatePicker unit tests started failing in December because
it relied on being able to press "next month". This change
sets the initial month to January.

* add tractor, truck, bring in data icons (palantir#3878)

* Release core 3.22.1

* Fix 3882 (palantir#3886)

Add gated input.focus to reinstate previous behavior

* Update react-popper to include important bugfix (palantir#3885)

* Update react-popper to include the fix from floating-ui/react-popper#320

* Update popper to 1.3.7

* Dedupe

* Yarn fix

* Yarny yarn

* Yo yo yarn

* Publish
- @blueprintjs/core@3.22.2
- @blueprintjs/docs-app@3.22.2

* Include index.js files in sideEffects list (palantir#3876)

* Include index files in sideEffects list

* Remove unnecessary index.js sideEffects

* Publish
- @blueprintjs/core@3.22.3
- @blueprintjs/docs-app@3.22.3

* [timezone] fix: upgrade moment-timezone to fix Brazilian timezones (palantir#3873)

* Publish

 - @blueprintjs/icons@3.13.0
 - @blueprintjs/timezone@3.6.1

* [core] fix(Toast): bottom toasts exit in the correct direction (palantir#3911)

Fixes palantir#3791

* [docs-app] fix(FormGroupExample): label ids (palantir#3892)

* [core] fix(NumericInput): correct rounding of default value (palantir#3894)

Fixes palantir#3889

* [docs-app] fix: CSS wrapping of main title in sidebar (palantir#3896)

* [core] fix(Toast): bottom shadow is no longer clipped (palantir#3912)

* [datetime] chore: fix tests which used year 2020 (palantir#3916)

* chore: use ESLint to run TSlint (palantir#3887)

* [core] feat: add intent prop to Slider and RangeSlider (palantir#3913)

* [table] fix: invalidate grid before rendering table when dimensions change (palantir#3888)

* chore: upgrade dependencies (palantir#3920)

* [core] docs: update link to popper.js modifiers reference (palantir#3922)

* [core] docs(Popover): fix text referencing "dismiss" buttons in example (palantir#3923)

* [core] fix(EditableText): allow setting value to null in controlled mode (palantir#3924)

* Publish

 - @blueprintjs/core@3.23.0
 - @blueprintjs/datetime@3.15.2
 - @blueprintjs/eslint-config@0.1.0

* [core] fix(Overlay): avoid rare crash in focus handling logic (palantir#3936)

* [resources] update sketch palette with named colors instead of hex (palantir#3931)

* chore: convert custom tslint rules to eslint (palantir#3917)

* [eslint-plugin-blueprint] fix(icon-components): autofix (palantir#3938)

also run this package's tests in CI properly

* [table] fix: column resize calculation on header double click (palantir#3732)

* [core] fix(Collapse): closing animation (palantir#3929)

* Prepare release (palantir#3939)

* Publish

 - @blueprintjs/core@3.23.1
 - @blueprintjs/docs-app@3.23.0
 - @blueprintjs/eslint-config@0.2.0
 - @blueprintjs/eslint-plugin-blueprint@0.1.0
 - @blueprintjs/node-build-scripts@1.0.0
 - @blueprintjs/table@3.8.3
 - @blueprintjs/tslint-config@2.0.0

* fix: eslint-config package reference, improve es-lint build script (palantir#3940)

* Publish

 - @blueprintjs/eslint-config@0.2.1
 - @blueprintjs/node-build-scripts@1.1.0

* chore: update README with new ESLint packages

* [core] feat(PanelStack): add renderCurrentPanelOnly prop (palantir#3768)

* [core] fix(PanelStack): rename prop and other fixes (palantir#3950)

* [core] feat(Button): add "outlined" modifier (palantir#3947)

* chore: upgrade to typescript 3.7 (palantir#3953)

* [core] remove non-HTML attributes in overflow menu items (palantir#3956)

* [icons] feat: add diagnosis and lab test icons (palantir#3966)

* [core] fix(HtmlSelect): text color for disabled options in dark mode (palantir#3968)

* [core] docs(Alert): clarify that intent applies to icon too (palantir#3978)

* [core] fix(InputGroup): right element padding adjusting on update (palantir#3973)

* [select] feat(Suggest): sync activeItem with selectedItem on popover close (palantir#3934)

* Publish

 - @blueprintjs/core@3.24.0
 - @blueprintjs/docs-app@3.24.0
 - @blueprintjs/icons@3.14.0
 - @blueprintjs/select@3.12.0

* [datetime] fix(DateRange): values are possibly null, not undefi… (palantir#3983)

fixes palantir#3970

* [core] feat(NumericInput): supply input element to onValueChange (palantir#3982)

* [core] feat(NumericInput): supply input element in onValueChange callback

* small refactor, use optional chaining to invoke callback

* fix lint

* fix more tests

* fix lint, remove describe.only

* [eslint-config] docs: add README (palantir#3985)

* [docs-app] feat(BreadcrumbsExample): render current as input (palantir#3986)

* [core] feat(TagInput): handle delete to remove items (palantir#3993)

Allows users to press `DELETE` on their keyboards to delete
an item from `<TagInput />`, which in turn is used by the
`Select` family of components.

Handling `DELETE` to remove item mimics the way `DELETE` works
in a text editor, where an user can delete from the beginning
of the line forward. Reaching the end of the line, in our
case passing the last selected item in `<TagInput />` will stop
deleting. Moving the selection to the first item and deleting
from that point onwards repeatedly will delete all the selected
items.

* [core] fix(Button): remove invalid HTML attr (palantir#3998)

update INVALID_PROPS list used by removeNonHTMLProps() utility fn

* [datetime] docs: improved localization code example (palantir#4003)

* chore(deps): bump acorn from 5.7.3 to 5.7.4 (palantir#4011)

Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](acornjs/acorn@5.7.3...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [datetime] feat(DatePicker): add support for dayPickerProps.renderDay (palantir#4012)

* docs(README): update code sandbox link

Co-authored-by: Sebastian Brückner <mail@invlid.com>
Co-authored-by: Ed Hinchliffe <ed@pixelnebula.com>
Co-authored-by: Chris Lewis <cmslewis@gmail.com>
Co-authored-by: Gilad Gray <ggray@palantir.com>
Co-authored-by: Gilad Gray <giladgray@gmail.com>
Co-authored-by: yixunx <yixunx@gmail.com>
Co-authored-by: Jeff Lau <jlau@uselesspickles.com>
Co-authored-by: Gianfrancø Palumbo <gianpaj@users.noreply.github.com>
Co-authored-by: Philip Harrison <philip@mailharrison.com>
Co-authored-by: Grey Baker <greysteil@gmail.com>
Co-authored-by: Mark Sinapilo <markdhel@users.noreply.github.com>
Co-authored-by: mohanaravind <mohanaravind@gmail.com>
Co-authored-by: Piotr Adam Kwiatkowski <contact@piotrkwiatkowski.co.uk>
Co-authored-by: Leah Anderson <leah.a.anderson@gmail.com>
Co-authored-by: Isabel Muñoz <teanocrata@gmail.com>
Co-authored-by: Endi Modric <endi.modric@outlook.com>
Co-authored-by: MGHawes <hawes.info@gmail.com>
Co-authored-by: Marvin Sum <831708+marvinsum@users.noreply.github.com>
Co-authored-by: Phil Chen <c.phillip91@gmail.com>
Co-authored-by: Yury Shevchenko <n1313@users.noreply.github.com>
Co-authored-by: Shuyang Li <shuyang.li.95@gmail.com>
Co-authored-by: Jacek Jagiełło <jacekjagiello47@gmail.com>
Co-authored-by: Acko <spasic.acko.95@gmail.com>
Co-authored-by: Adi Dahiya <adi.dahiya14@gmail.com>
Co-authored-by: Adi Dahiya <adahiya@palantir.com>
Co-authored-by: Gabe Boning <gboning@gmail.com>
Co-authored-by: Stephen Kennedy <stephenjameskennedy@gmail.com>
Co-authored-by: jamison judge <jj@jamisonjudge.com>
Co-authored-by: wangxiaolei <fatelei@gmail.com>
Co-authored-by: Matt Conway <mattconway55@gmail.com>
Co-authored-by: Thomas Rich <tnrich@teselagen.com>
Co-authored-by: Paul Okuda <paulyokuda@gmail.com>
Co-authored-by: jroitgrund <jroitgrund@gmail.com>
Co-authored-by: Nick Zelei <nickzelei@gmail.com>
Co-authored-by: peachfuzz <32380679+peachfuzz@users.noreply.github.com>
Co-authored-by: Christopher Yu <cyu06@hotmail.com>
Co-authored-by: Gertjan van Oosten <gertjan@west.nl>
Co-authored-by: Bala <bala_krishna@outlook.com>
Co-authored-by: James Greenleaf <james@greenle.af>
Co-authored-by: David <david.lobosco@uprightlabs.com>
Co-authored-by: Rhys Brett-Bowen <rhysbrettbowen@gmail.com>
Co-authored-by: Chris Lott <chrisnlott@gmail.com>
Co-authored-by: alecf <alecf@flett.org>
Co-authored-by: n1xx1 <simo.sc22@gmail.com>
Co-authored-by: Sebastian Brückner <sbrueckner@palantir.com>
Co-authored-by: Mac Lockard <mlockard@palantir.com>
Co-authored-by: ericjeney <me@ericjeney.com>
Co-authored-by: Shovon Hasan <im.shovonhasan@gmail.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Benjamin Lee <leebyp@gmail.com>
Co-authored-by: Veda <pal.veda.deepta@gmail.com>
Co-authored-by: Jeremy Paterson <jaydpaterson@gmail.com>
Co-authored-by: Mihail Novikov <thepocp@gmail.com>
Co-authored-by: 李逸飛 <45546645+li-yifei@users.noreply.github.com>
Co-authored-by: Vadzim <v@vadzim.info>
Co-authored-by: Nathan Hinish <nathan.hinish@gmail.com>
Co-authored-by: doanguyen <dungnv2410@gmail.com>
Co-authored-by: Daniel Saewitz <switz213@gmail.com>
Co-authored-by: Garrett B <garrettgsb@gmail.com>
Co-authored-by: Thibault V <8404502+thibaultvanluchene@users.noreply.github.com>
Co-authored-by: Darren Zhao <darryqueen@berkeley.edu>
Co-authored-by: Adam Storr <155064+adamstorr@users.noreply.github.com>
Co-authored-by: Lei Ferretti <lei.ferretti@oaknorth.ai>
Co-authored-by: Tobias Lengsholz <tobias.lengsholz@invision.de>
Co-authored-by: trevor <tmehard@gmail.com>
Co-authored-by: Pep Rodeja <pep@rodeja.me>
Co-authored-by: Caleb Angelino <belac9615@users.noreply.github.com>
Co-authored-by: Adam Storr <adamstorr@gmail.com>
Co-authored-by: jamesgiu <james.giuffrida@gmail.com>
Co-authored-by: Max Bucknell <me@maxbucknell.com>
Co-authored-by: Jonathan Christopher <nathanchrs@users.noreply.github.com>
Co-authored-by: Ryan Hermstein <rlhermstein@yahoo.com>
Co-authored-by: Chu-Ya Chia <chuyachia@gmail.com>
Co-authored-by: Bill Dwyer <bdwyer@palantir.com>
Co-authored-by: Miklós András Danka <danka.miklos@gmail.com>
Co-authored-by: Stephanie Yu <stephaniey@palantir.com>
Co-authored-by: Meike <meike@grewing.eu>
Co-authored-by: J Paterson <contact@jpatersondev.com>
Co-authored-by: Denis Sokolov <denis@sokolov.cc>
Co-authored-by: Igor Lysak <igorlysak@agilestacks.com>
Co-authored-by: John Wiseheart <johnwiseheart@gmail.com>
Co-authored-by: Boaz Rymland <boazrymland@users.noreply.github.com>
Co-authored-by: Johnny Goodnow <jgoodnow@fastmail.com>
Co-authored-by: David Esteves <estevesd@users.noreply.github.com>
Co-authored-by: John Wiseheart <jwiseheart@palantir.com>
Co-authored-by: Valentine Nuikin <zwerg44@gmail.com>
Co-authored-by: Radosław Miernik <radekmie@gmail.com>
Co-authored-by: Charles Perinet <charles.perinet@gmail.com>
Co-authored-by: Spencer Sutton <spencersutton@users.noreply.github.com>
Co-authored-by: Rootul Patel <rootulp@gmail.com>
Co-authored-by: lexistein <61256233+lexistein@users.noreply.github.com>
Co-authored-by: Trevor Mehard <trevor.mehard@crunchydata.com>
Co-authored-by: Leon Coto <grancalavera@users.noreply.github.com>
Co-authored-by: Lumyo <thib.bouillon@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Malik Bagwala <m.bagwala@gmail.com>
FezVrasta pushed a commit that referenced this pull request Mar 4, 2021
Popper.js' componentDidUpdate fails the props change test, which calls updatePopperInstance, which eventually causes componentDidUpdate to get called again.
By using a deepEquals comparison on modifiers we correctly determine that the props did not update, and break the loop.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants