armisa-models
Version:
models of armisa!
49 lines (42 loc) • 1.6 kB
text/typescript
import { MainStateManager } from "../../MainStateManager";
import { IMainStateFactory } from "../../Types";
import { Argument } from "./Argument";
import { SubPagesFactory } from "./SubPagesFactory";
export class SubPageItem {
public get any() {
return this as any;
}
public title: string = '';
public mainStateManager: MainStateManager;
public id: string;
public isDeleted: boolean;
#hasChange: boolean;
public get hasChange(): boolean {
return this.#hasChange;
}
public get isActiveSubPage(): boolean {
return this.subPagesFactory.activeSubPage === this;
}
constructor(
public subPagesFactory: SubPagesFactory,
public pageKey: string,
public lazyComponent?: React.LazyExoticComponent<React.ComponentType<any>>,
public pageComponet?: React.ComponentType<any>,
) {
this.id = Math.random().toString() + '-' + new Date().getMilliseconds().toString();
this.mainStateManager = this.subPagesFactory.mainStateFactory.mainStateManager;
// this.Component = this.mainStateManager.lazyLoadFactory.get(this.pageKey);
this.#hasChange = false;
this.isDeleted = false;
}
public close = () => {
this.subPagesFactory.closeThisSubPageItem(this);
};
public select = () => {
this.subPagesFactory.selectThisSubPageItem(this);
};
public argument?: Argument;
}
export const getSubPageItem = (mainState: IMainStateFactory) => {
return mainState.elementsOfForm.subPageItem!;
}