package com.trigyua.view;

import com.vaadin.flow.component.html.Div;
import com.vaadin.flow.component.login.LoginI18n;
import com.vaadin.flow.component.login.LoginOverlay;
import com.vaadin.flow.component.orderedlayout.FlexComponent;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.BeforeEnterEvent;
import com.vaadin.flow.router.BeforeEnterListener;
import com.vaadin.flow.router.Route;

/**
 * @author ripesh created on 26/01/2024
 */
@Route("login")
public class LoginView extends Div implements BeforeEnterListener {

  private LoginOverlay loginOverlay;

  public LoginView() {
    add(this.getCustomLoginForm());
  }

  private VerticalLayout getCustomLoginForm() {
    VerticalLayout verticalLayout = new VerticalLayout();
    verticalLayout.setAlignItems(FlexComponent.Alignment.CENTER);
    LoginI18n i18n = LoginI18n.createDefault();
    LoginI18n.Form i18nForm = i18n.getForm();
    i18nForm.setUsername("Email");
    i18n.getErrorMessage().setUsername("Email is required");
    i18n.getErrorMessage().setTitle("Incorrect email or password");
    i18n.getErrorMessage()
        .setMessage("Check that you have entered the correct email and password and try again.");
    loginOverlay = new LoginOverlay();
    loginOverlay.setTitle("Triyuga App");
    loginOverlay.setDescription("");
    loginOverlay.setOpened(true);
    loginOverlay.setI18n(i18n);
    loginOverlay.setForgotPasswordButtonVisible(false);
    loginOverlay.setAction("login");
    verticalLayout.add(loginOverlay);
    return verticalLayout;
  }

  @Override
  public void beforeEnter(BeforeEnterEvent beforeEnterEvent) {
    if (beforeEnterEvent.getLocation().getQueryParameters().getParameters().containsKey("error")) {
      loginOverlay.setError(true);
    }
  }
}
