@@ -269,6 +269,8 @@ export function useDateFieldState<T extends DateValue = DateValue>(props: DateFi
269
269
270
270
let dateValue = useMemo ( ( ) => displayValue . toDate ( timeZone ) , [ displayValue , timeZone ] ) ;
271
271
let timeValue = [ 'hour' , 'minute' , 'second' ] ;
272
+ let dateSegments = [ 'day' , 'month' , 'year' ] ;
273
+ let rtlLocale = [ 'ar-DZ' , 'ar-AE' , 'ar-EG' , 'ar-SA' ] ;
272
274
let segments = useMemo ( ( ) =>
273
275
dateFormatter . formatToParts ( dateValue )
274
276
. map ( segment => {
@@ -282,22 +284,31 @@ export function useDateFieldState<T extends DateValue = DateValue>(props: DateFi
282
284
283
285
let value = segment . value ;
284
286
let place = placeholder ;
285
- if ( segment . type === 'day' && locale !== 'ar-AE' ) {
287
+ if ( dateSegments . length === 3 && dateSegments . includes ( segment . type ) && ! rtlLocale . includes ( locale ) ) {
286
288
value = `\u2066${ value } ` ;
287
289
place = `\u2066${ place } ` ;
290
+ // value = `${value}`;
291
+ // place = `${place}`;
288
292
} else if ( segment . type === 'hour' ) {
289
293
value = `\u2066${ value } ` ;
290
294
place = `\u2066${ place } ` ;
291
295
// Ideally the unicode (\u2069) would be placed at the end but that seems to cause some issues
292
296
// with the background when the rightmost character is focused in Hebrew.
293
- } else if ( segment . type === 'year' && locale !== 'ar-AE' ) {
297
+ } else if ( dateSegments . length === 1 && dateSegments . includes ( segment . type ) && ! rtlLocale . includes ( locale ) ) {
298
+ // value = `${value}`;
299
+ // place = `${place}`;
294
300
value = `\u2069${ value } ` ;
295
301
place = `\u2069${ place } ` ;
296
302
} else if ( timeValue . includes ( granularity ) && segment . type === granularity ) {
297
303
value = `\u2069${ value } ` ;
298
304
place = `\u2069${ place } ` ;
305
+
299
306
}
300
307
308
+ if ( dateSegments . includes ( segment . type ) ) {
309
+ dateSegments = dateSegments . filter ( item => item !== segment . type ) ;
310
+ } ;
311
+
301
312
return {
302
313
type : TYPE_MAPPING [ segment . type ] || segment . type ,
303
314
text : isPlaceholder ? place : value ,
0 commit comments