import { MainColorType } from '@nova-hf/ui';
import { action, extendObservable, makeObservable, observable } from 'mobx';

export default class UI {
  constructor({ ui = {} }) {
    makeObservable(this, {
      isHeaderInverted: observable,
      isMegaMenuOpen: observable,
      setIsHeaderInverted: action,
      setIsMegaMenuOpen: action,
      showContactBubble: observable,
      setShowContactBubble: action,
      isContactMenuOpen: observable,
      setIsContactMenuOpen: action,
      serviceColor: observable,
    });

    extendObservable(this, ui);
  }

  isHeaderInverted = false;

  isMegaMenuOpen = false;

  serviceColor: MainColorType = 'pink';

  showContactBubble = true;

  isContactMenuOpen = false;

  setIsHeaderInverted(isInverted: boolean) {
    this.isHeaderInverted = isInverted;
  }

  setIsMegaMenuOpen(isOpen: boolean) {
    this.isMegaMenuOpen = isOpen;
  }

  setServiceColor(color: MainColorType) {
    this.serviceColor = color;
  }

  setShowContactBubble(showBubble: boolean) {
    this.showContactBubble = showBubble;
  }

  setIsContactMenuOpen(isOpen: boolean) {
    this.isContactMenuOpen = isOpen;
  }
}
