Estou migrando a interface Taiga UI da versão 3 para a versão 4 em um projeto Angular. Como a TuiNotification deve ser usada na versão 4, se eu quiser usá-la para constantes como TuiNotification.Warning? Isso funcionava na versão 3, mas foi descontinuado e sugeriram usar a TuiNotificationT do mesmo pacote, mas ela não existe na versão 4.
Veja um exemplo de como o código atual se parece:
...
import { TuiNotification } from '@taiga-ui/core';
...
@Injectable()
export class SomeInputService extends RxState<{
}> {
constructor(
private notifications: TuiAlertService
) {
super();
this.doSomething();
}
private doSomething() {
if (!something) {
return this.showNotification(
marker('Not working'),
marker('Wrong file'),
**TuiNotification.Warning**
);
}
else {
return this.showNotification(
marker('Some error'),
text ?? '',
**TuiNotification.Error**
);
}
}
private showNotification(
title: string,
text: string,
status: TuiNotification
) {
const label = this.transloco.translate(title);
const message = this.transloco.translate(text);
this.hold(
this.notifications.open(message, { status, label, autoClose: 10000 })
);
}
}
O erro que recebo é
Property 'Warning' does not exist on type 'typeof TuiNotification'.ts
Na v4
TuiNotification
mudou de umenum
para um componenteTuiNotification
.notification.directive.ts - Código-fonte
Além disso, quando disparamos
.open
um método, precisamos nos inscrever nele para que o pop-up seja aberto.A
error
aparência também parece funcionar, mesmo que não esteja presente no tipo de código-fonte.Então você precisa configurá-lo com base em valores de string. Você pode usar os valores da lista abaixo e funcionará.
appearance.options.ts - Código-fonte
Código completo:
Demonstração do Stackblitz