import { DateBoxesFactory } from "../DateBox/DateBoxesFactory";
import { DatePickerFactory } from './DatePickerFactory';


export class DatePickersFactory {
    public get any(): any {
        return this;
    }

    #currentSelected: 'from' | 'to' = 'from';
    public get currentSelected() {
        return this.#currentSelected;
    }
    public changeCurrentSelected = () => {
        if (this.#currentSelected === 'from') {
            this.#currentSelected = 'to';
        } else {
            this.#currentSelected = 'from';
        }
        this.forceUpdate();
    }

    public get getCurrentDatePickerFactory(): DatePickerFactory {
        if (this.#currentSelected === 'from') {
            return this.fromFactory;
        } else {
            return this.toFactory;
        }
    }


    public fromFactory: DatePickerFactory;
    public toFactory: DatePickerFactory;

    constructor(
        public selfDateBoxsFactory: DateBoxesFactory,
        public forceUpdate: () => void,
        public closeModal: () => void,
    ) {
        this.fromFactory = new DatePickerFactory(selfDateBoxsFactory.fromDateBoxFactory, forceUpdate);
        this.toFactory = new DatePickerFactory(selfDateBoxsFactory.toDateBoxFactory, forceUpdate);
    }


}