@codecademy/gamut
72.2.272.2.3-alpha.500e59.0
dist/DatePicker/DatePickerInput/index.js~
dist/DatePicker/DatePickerInput/index.jsModified+11−12
Index: package/dist/DatePicker/DatePickerInput/index.js
===================================================================
--- package/dist/DatePicker/DatePickerInput/index.js
+++ package/dist/DatePicker/DatePickerInput/index.js
@@ -1,7 +1,8 @@
import { MiniCalendarIcon } from '@codecademy/gamut-icons';
import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
import { FlexBox } from '../../Box';
+import { IconButton } from '../../Button';
import { FormGroup } from '../../Form/elements/FormGroup';
import { isSameDay } from '../DatePickerCalendar/Calendar/utils/dateGrid';
import { handleDateSelectRange } from '../DatePickerCalendar/utils/dateSelect';
import { useDatePicker } from '../DatePickerContext';
@@ -56,8 +57,9 @@
const parsedForHidden = parseSegmentsToDate(segments);
const hiddenValue = parsedForHidden ? formatDateISO8601DateOnly(parsedForHidden) : '';
const isInputFocusedRef = useRef(false);
const containerRef = useRef(null);
+ const buttonRef = useRef(null);
const segmentElRefs = useRef({});
const assignSegmentRef = useCallback((field, el) => {
segmentElRefs.current[field] = el;
}, [segmentElRefs]);
@@ -143,17 +145,17 @@
if (!isCalendarOpen) openCalendar();
focusCalendar();
}, [isCalendarOpen, openCalendar, focusCalendar]);
return /*#__PURE__*/_jsx(FormGroup, {
- htmlFor: inputId,
+ id: inputId,
isSoloField: true,
label: label ?? defaultLabel,
mb: 0,
pb: 0,
spacing: "tight",
width: "fit-content",
children: /*#__PURE__*/_jsxs(SegmentedShell, {
- id: inputId,
+ "aria-labelledby": inputId,
inputSize: size,
ref: shellRef,
role: "group",
variant: error ? 'error' : 'default',
@@ -198,18 +200,15 @@
name: name ?? 'datePickerInput',
tabIndex: -1,
type: "hidden",
value: hiddenValue
- }), /*#__PURE__*/_jsx(FlexBox, {
- alignItems: "center",
- justifyContent: "center",
- pl: 16,
- pr: 8,
- role: "presentation",
- children: /*#__PURE__*/_jsx(MiniCalendarIcon, {
- "aria-hidden": true,
- size: 16
- })
+ }), /*#__PURE__*/_jsx(IconButton, {
+ mx: 4,
+ icon: MiniCalendarIcon,
+ size: "small",
+ tip: translations.openCalendarLabel,
+ ref: buttonRef,
+ onClick: () => buttonRef.current?.blur()
})]
})
});
});
\ No newline at end of file