From f03a2cf831a93f157fcf02d18e35cff38f4df307 Mon Sep 17 00:00:00 2001 From: Eugene Date: Mon, 6 Feb 2023 19:44:40 +0300 Subject: [PATCH] feat: add callback to handle aria label --- src/Calendar.jsx | 17 ++++++++++------- src/Tile.jsx | 6 +++++- src/shared/propTypes.js | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Calendar.jsx b/src/Calendar.jsx index f8f67bcd..b61f5b26 100644 --- a/src/Calendar.jsx +++ b/src/Calendar.jsx @@ -399,14 +399,14 @@ export default class Calendar extends Component { const nextActiveStartDate = // Range selection turned off !selectRange || - // Range selection turned on, first value - isFirstValueInRange || - // Range selection turned on, second value, goToRangeStartOnSelect toggled on - goToRangeStartOnSelect + // Range selection turned on, first value + isFirstValueInRange || + // Range selection turned on, second value, goToRangeStartOnSelect toggled on + goToRangeStartOnSelect ? getActiveStartDate({ - ...this.props, - value: nextValue, - }) + ...this.props, + value: nextValue, + }) : null; event.persist(); @@ -461,6 +461,7 @@ export default class Calendar extends Component { const { activeStartDate: currentActiveStartDate, onMouseOver, valueType, value, view } = this; const { calendarType, + tileAriaLabelHandler, locale, maxDate, minDate, @@ -484,6 +485,7 @@ export default class Calendar extends Component { maxDate, minDate, onClick, + tileAriaLabelHandler, onMouseOver: selectRange ? onMouseOver : null, tileClassName, tileContent, @@ -687,6 +689,7 @@ Calendar.propTypes = { onDrillDown: PropTypes.func, onDrillUp: PropTypes.func, onViewChange: PropTypes.func, + tileAriaLabelHandler: PropTypes.func, prev2AriaLabel: PropTypes.string, prev2Label: PropTypes.node, prevAriaLabel: PropTypes.string, diff --git a/src/Tile.jsx b/src/Tile.jsx index 12e9e757..f760914d 100644 --- a/src/Tile.jsx +++ b/src/Tile.jsx @@ -55,6 +55,7 @@ export default class Tile extends Component { date, formatAbbr, locale, + titleAriaLabelHandler, maxDate, maxDateTransform, minDate, @@ -67,6 +68,9 @@ export default class Tile extends Component { } = this.props; const { tileClassName, tileContent } = this.state; + const tileAriaLabel = titleAriaLabelHandler ? titleAriaLabelHandler(formatAbbr(locale, date)) : formatAbbr(locale, date) + + return ( ); diff --git a/src/shared/propTypes.js b/src/shared/propTypes.js index 7105f837..aa0b042d 100644 --- a/src/shared/propTypes.js +++ b/src/shared/propTypes.js @@ -125,6 +125,7 @@ export const tileProps = { locale: PropTypes.string, maxDate: isMaxDate, minDate: isMinDate, + tileAriaLabelHandler: PropTypes.func, onClick: PropTypes.func, onMouseOver: PropTypes.func, style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),