mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-09 16:16:41 +08:00
fix(datetime): correct year is set in wheel picker (#25896)
resolves #25895
This commit is contained in:
@ -1415,7 +1415,6 @@ export class Datetime implements ComponentInterface {
|
|||||||
|
|
||||||
const result = getCombinedDateColumnData(
|
const result = getCombinedDateColumnData(
|
||||||
locale,
|
locale,
|
||||||
workingParts,
|
|
||||||
todayParts,
|
todayParts,
|
||||||
min,
|
min,
|
||||||
max,
|
max,
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { generateMonths, getDaysOfWeek, generateTime, getToday } from '../utils/data';
|
import { generateMonths, getDaysOfWeek, generateTime, getToday, getCombinedDateColumnData } from '../utils/data';
|
||||||
|
|
||||||
describe('generateMonths()', () => {
|
describe('generateMonths()', () => {
|
||||||
it('should generate correct month data', () => {
|
it('should generate correct month data', () => {
|
||||||
@ -342,3 +342,25 @@ describe('getToday', () => {
|
|||||||
expect(res).toEqual('2022-02-21T18:30:00.000Z');
|
expect(res).toEqual('2022-02-21T18:30:00.000Z');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('getCombinedDateColumnData', () => {
|
||||||
|
it('should return correct data with dates across years', () => {
|
||||||
|
const { parts, items } = getCombinedDateColumnData(
|
||||||
|
'en-US',
|
||||||
|
{ day: 1, month: 1, year: 2021 },
|
||||||
|
{ day: 31, month: 12, year: 2020 },
|
||||||
|
{ day: 2, month: 1, year: 2021 }
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(parts).toEqual([
|
||||||
|
{ month: 12, year: 2020, day: 31 },
|
||||||
|
{ month: 1, year: 2021, day: 1 },
|
||||||
|
{ month: 1, year: 2021, day: 2 },
|
||||||
|
]);
|
||||||
|
expect(items).toEqual([
|
||||||
|
{ text: 'Thu, Dec 31', value: '2020-12-31' },
|
||||||
|
{ text: 'Today', value: '2021-1-1' },
|
||||||
|
{ text: 'Sat, Jan 2', value: '2021-1-2' },
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
@ -251,7 +251,7 @@ test.describe('datetime: prefer wheel', () => {
|
|||||||
|
|
||||||
const dateValues = page.locator('.date-column .picker-item:not(.picker-item-empty)');
|
const dateValues = page.locator('.date-column .picker-item:not(.picker-item-empty)');
|
||||||
|
|
||||||
expect(await dateValues.count()).toBe(427);
|
expect(await dateValues.count()).toBe(397);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
test.describe('datetime: time-date wheel rendering', () => {
|
test.describe('datetime: time-date wheel rendering', () => {
|
||||||
@ -356,7 +356,7 @@ test.describe('datetime: prefer wheel', () => {
|
|||||||
|
|
||||||
const dateValues = page.locator('.date-column .picker-item:not(.picker-item-empty)');
|
const dateValues = page.locator('.date-column .picker-item:not(.picker-item-empty)');
|
||||||
|
|
||||||
expect(await dateValues.count()).toBe(427);
|
expect(await dateValues.count()).toBe(397);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -441,7 +441,6 @@ const getAllMonthsInRange = (currentParts: DatetimeParts, maxParts: DatetimePart
|
|||||||
*/
|
*/
|
||||||
export const getCombinedDateColumnData = (
|
export const getCombinedDateColumnData = (
|
||||||
locale: string,
|
locale: string,
|
||||||
refParts: DatetimeParts,
|
|
||||||
todayParts: DatetimeParts,
|
todayParts: DatetimeParts,
|
||||||
minParts: DatetimeParts,
|
minParts: DatetimeParts,
|
||||||
maxParts: DatetimeParts,
|
maxParts: DatetimeParts,
|
||||||
@ -473,7 +472,7 @@ export const getCombinedDateColumnData = (
|
|||||||
* of work as the text.
|
* of work as the text.
|
||||||
*/
|
*/
|
||||||
months.forEach((monthObject) => {
|
months.forEach((monthObject) => {
|
||||||
const referenceMonth = { month: monthObject.month, day: null, year: refParts.year };
|
const referenceMonth = { month: monthObject.month, day: null, year: monthObject.year };
|
||||||
const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {
|
const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {
|
||||||
month: 'short',
|
month: 'short',
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
@ -492,7 +491,7 @@ export const getCombinedDateColumnData = (
|
|||||||
*/
|
*/
|
||||||
dateColumnItems.push({
|
dateColumnItems.push({
|
||||||
text: isToday ? getTodayLabel(locale) : dayObject.text,
|
text: isToday ? getTodayLabel(locale) : dayObject.text,
|
||||||
value: `${refParts.year}-${monthObject.month}-${dayObject.value}`,
|
value: `${referenceMonth.year}-${referenceMonth.month}-${dayObject.value}`,
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -506,8 +505,8 @@ export const getCombinedDateColumnData = (
|
|||||||
* updating the picker column value.
|
* updating the picker column value.
|
||||||
*/
|
*/
|
||||||
dateParts.push({
|
dateParts.push({
|
||||||
month: monthObject.month,
|
month: referenceMonth.month,
|
||||||
year: refParts.year,
|
year: referenceMonth.year,
|
||||||
day: dayObject.value as number,
|
day: dayObject.value as number,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user