-
Notifications
You must be signed in to change notification settings - Fork 2.2k
datetime2 component migration
Adi Dahiya edited this page Jul 14, 2022
·
15 revisions
To prepare for the Popover changes coming in Blueprint v5.0, we're providing "v2" variants of @blueprintjs/datetime and @blueprintjs/timezone components which use Popover2 instead of Popover. Migrate to these now in order to ensure a smooth migration path.
These components are available in the new @blueprintjs/datetime2 package:
Replacement for DateInput, with notable changes:
- Component uses Popover2 instead of Popover, so there are some DOM changes and the type of
popoverPropshas changed toPopover2Props. See Popover2 migration for more info. - The controlled
valueand uncontrolleddefaultValueAPI have changed to use an ISO string instead of a JS Date value. ISO strings are also returned in theonChangecallback. This allows the component to be more explicit about timezones. - Component optionally embeds a TimezoneSelect inside the input, which allows the user to change the timezone of the selected datetime. This can be enabled with the new prop
showTimezoneSelect={true}.
- <span class="bp4-popover-wrapper">
- <span aria-haspopup="true" class="bp4-popover-target">
- <div class="bp4-input-group">
- <input type="text" autocomplete="off" placeholder="JS Date" class="bp4-input" value="7/14/2022">
- </div>
- </span>
- </span>
+ <span aria-haspopup="true" class="bp4-date-input bp4-popover2-target">
+ <div class="bp4-input-group">
+ <input type="text" autocomplete="off" placeholder="MM/dd/yyyy" class="bp4-input" value="07/14/2022">
+ <!-- optional timezone select here -->
+ </div>
+ </span>Replacement for TimezonePicker, with notable changes:
- Component name has changed to better match semantic naming patterns of other Blueprint components:
- It is a specialized select component, not a picker component.
- Note that we use the term "picker" to refer to DatePicker / DateRangePicker, which do not rely on popovers.
- New name means that class names have changed:
-
.bp4-timezone-picker→.bp4-timezone-select -
.bp4-timezone-picker-popover→.bp4-timezone-select-popover - ℹ️ remember to always use the
$bp-nsvariable in Sass and theClassesconstants in TS/JS when referencing Blueprint class names
-
- Component uses Select2 instead of Select, so there are some DOM changes — see Select2 migration for more info.
- New prop
fillmatches behavior of<Select fill>. - The type of
popoverPropshas changed toPopover2Props, which means a few properties have changed. See Popover2 migration for more info.- popover positioning may be specified with "placement" or "position"
-
boundaryhas been replaced withrootBoundary, which better matches popper.js' definition of what a "boundary" is -
modifierstype has changed -
targetClassNameandtargetTagNameproperties have been removed
- <span class="bp4-popover-wrapper bp4-timezone-picker">
- <span aria-haspopup="true" class="bp4-popover-target">
- <div class="">
- <button type="button" class="bp4-button">
- ...
- </button>
- </div>
- </span>
- </span>
+ <div
+ aria-controls="listbox-1"
+ aria-expanded="false"
+ aria-haspopup="listbox"
+ class="bp4-timezone-select bp4-popover2-target"
+ role="combobox"
+ >
+ <button type="button" class="bp4-button">
+ ...
+ </button>
+ </div>- FAQ
- 6.x Changelog
- 5.x Changelog
- 5.0 pre-release changelog
- 4.x Changelog
- v4.0 & v5.0 major version semantic swap
- v6.0 changes
- Spacing System Migration: 10px to 4px
- react-day-picker v8 migration
- HotkeysTarget & useHotkeys migration
- PanelStack2 migration
- Table 6.0 changes