Skip to content

Commit 08e945b

Browse files
committed
fix: force data-readonly when datefield is readonly
1 parent 4b2c6e7 commit 08e945b

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

packages/@react-stately/datepicker/src/useDateFieldState.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@ export function useDateFieldState<T extends DateValue = DateValue>(props: DateFi
269269

270270
let dateValue = useMemo(() => displayValue.toDate(timeZone), [displayValue, timeZone]);
271271
let segments = useMemo(() =>
272-
processSegments(dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity),
273-
[dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity]);
272+
processSegments(dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity, isReadOnly),
273+
[dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity, isReadOnly]);
274274

275275
// When the era field appears, mark it valid if the year field is already valid.
276276
// If the era field disappears, remove it from the valid segments.
@@ -408,13 +408,13 @@ export function useDateFieldState<T extends DateValue = DateValue>(props: DateFi
408408
};
409409
}
410410

411-
function processSegments(dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity) : DateSegment[] {
411+
function processSegments(dateValue, validSegments, dateFormatter, resolvedOptions, displayValue, calendar, locale, granularity, isReadOnly) : DateSegment[] {
412412
let timeValue = ['hour', 'minute', 'second'];
413413
let segments = dateFormatter.formatToParts(dateValue);
414414
let processedSegments: DateSegment[] = [];
415415
for (let segment of segments) {
416416
let isEditable = EDITABLE_SEGMENTS[segment.type];
417-
if (segment.type === 'era' && calendar.getEras().length === 1) {
417+
if (segment.type === 'era' && calendar.getEras().length === 1 || isReadOnly) {
418418
isEditable = false;
419419
}
420420

packages/react-aria-components/stories/TimeField.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default {
2020
};
2121

2222
export const TimeFieldExample = () => (
23-
<TimeField data-testid="time-field-example">
23+
<TimeField data-testid="time-field-example" isReadOnly>
2424
<Label style={{display: 'block'}}>Time</Label>
2525
<DateInput className={styles.field}>
2626
{segment => <DateSegment segment={segment} className={clsx(styles.segment, {[styles.placeholder]: segment.isPlaceholder})} />}

0 commit comments

Comments
 (0)