zyfra / Prizm

Other
46 stars 16 forks source link

[BUG] @prizm-ui/components - PrizmInputLayoutDateTimeRange и PrizmInputLayoutDateTimeComponent дважды эмитят значение #2089

Open ozknemoy opened 3 weeks ago

ozknemoy commented 3 weeks ago

Библиотека

Компонент

PrizmInputLayoutDateTimeRangeModule

Версия

prizm

4.3.4

Операционная ситема:

Windows 10, etc

Браузер:

Google Chrome

Проект в котором используется Prizm

Воспроизведение проблемы

<prizm-input-layout label="Выберите период со временем">
  <prizm-input-layout-date-time-range [formControl]="dateTimeRangeControl" placeholder="Период событий">
  </prizm-input-layout-date-time-range>
</prizm-input-layout>

<prizm-input-layout label="Введите дату со временем">
  <prizm-input-layout-date [formControl]="dateTimeControl"></prizm-input-layout-date>
</prizm-input-layout>

import { Component } from '@angular/core';
import { PrizmThemeService } from '@prizm-ui/theme';
import {
  PrizmDateTimeRange,
  PrizmInputCommonModule,
  PrizmInputLayoutDateTimeRangeComponent,
} from '@prizm-ui/components';
import { FormControl, ReactiveFormsModule } from '@angular/forms';

@Component({
  standalone: true,
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrl: './app.component.scss',
  imports: [
    PrizmInputCommonModule,
    PrizmInputLayoutDateTimeRangeComponent,
    ReactiveFormsModule,
    PrizmInputLayoutDateTimeComponent,
    PrizmInputLayoutDateRangeComponent,
    PrizmInputLayoutDateComponent,
  ],
})
export class AppComponent {
  public readonly dateTimeRangeControl = new FormControl();
  public readonly dateTimeControl = new FormControl();

  constructor() {
    this.dateTimeRangeControl.valueChanges.subscribe(value => {
      console.log('dateTimeRange эмитит сначала дату ДО как 00:00  второй раз как 23:59 или max если таковой есть',value);
    });

    this.dateTimeControl.valueChanges.subscribe(value => {
      console.log('dateTime', value);
    });
  }
}

Описание проблемы

PrizmInputLayoutDateTimeRangeComponent и PrizmInputLayoutDateTimeComponent

1) при выборе через календарь, новое значение эмитится двужды (у аналогичных инпутов без времени эмит только 1 раз) 2) на страницах датапикеров не работают примеры на stackblitz. например, https://prizm.site/components/input-layout-date-time-range не работает ни один из примеров, не смог проверить есть ли эта бага в новой версии

imonogarov commented 2 weeks ago

связано #2087