fix: resuelve invarianza de inputs heredados y estrictez de tipos heredada

This commit is contained in:
2026-07-27 23:49:11 +02:00
parent 779f1c1308
commit cfffdfd192
22 changed files with 42 additions and 36 deletions

View File

@@ -1,5 +1,5 @@
// Angular
import { Injectable } from '@angular/core';
import { Injectable, inject } from '@angular/core';
// Ngrx
import { Store } from '@ngrx/store';
@@ -15,6 +15,10 @@ import * as fromSelectors from '../state/device-configs.selectors';
@Injectable({ providedIn: 'root' })
export class DeviceConfigsFacade {
// `inject()` en vez de parámetro de constructor: los inicializadores de
// propiedad de abajo se evalúan antes que los parámetros del constructor.
private readonly store = inject<Store<fromState.DeviceConfigsState>>(Store);
// Device
readonly device$: Observable<Device> = this.store.select(fromSelectors.getDevice);
readonly size$: Observable<Size> = this.store.select(fromSelectors.getSize);
@@ -23,8 +27,6 @@ export class DeviceConfigsFacade {
// Browser
readonly browser$: Observable<Browser> = this.store.select(fromSelectors.getBrowser);
constructor(private store: Store<fromState.DeviceConfigsState>) {}
getBrowser(): void {
this.store.dispatch(fromActions.BrowserActions.getBrowser());
}

View File

@@ -1,5 +1,5 @@
// Angular
import { Injectable } from '@angular/core';
import { Injectable, inject } from '@angular/core';
// Ngrx
import { Store } from '@ngrx/store';
@@ -14,9 +14,11 @@ import * as fromState from '../state/list-configs.reducer';
@Injectable({ providedIn: 'root' })
export class ListConfigsFacade {
readonly mode$: Observable<fromState.ListMode> = this.store.select(fromSelectors.getListMode);
// `inject()` en vez de parámetro de constructor: los inicializadores de
// propiedad de abajo se evalúan antes que los parámetros del constructor.
private readonly store = inject<Store<fromState.ListConfigsState>>(Store);
constructor(private store: Store<fromState.ListConfigsState>) {}
readonly mode$: Observable<fromState.ListMode> = this.store.select(fromSelectors.getListMode);
setListMode(payload: fromState.ListMode): void {
this.store.dispatch(fromActions.setListMode({ payload }));

View File

@@ -1,5 +1,5 @@
// Angular
import { Injectable } from '@angular/core';
import { Injectable, inject } from '@angular/core';
// RxJS
import { Observable, Subscribable } from 'rxjs';
@@ -13,10 +13,12 @@ import * as LoaderActions from '../state/loader.actions';
@Injectable()
export class LoaderFacade {
loader$: Observable<boolean> = this.store.pipe(select(LoaderSelectors.getLoader));
showLoader$: Observable<unknown> | Subscribable<unknown> | Promise<unknown>;
// `inject()` en vez de parámetro de constructor: los inicializadores de
// propiedad de abajo se evalúan antes que los parámetros del constructor.
private readonly store = inject(Store);
constructor(private store: Store) {}
loader$: Observable<boolean> = this.store.pipe(select(LoaderSelectors.getLoader));
showLoader$?: Observable<unknown> | Subscribable<unknown> | Promise<unknown>;
showLoader() {
this.store.dispatch(LoaderActions.showLoader());