Tabsheet is blocking my view from communicating with mongo repository

im struggling to display data from mongodb or saving data to mongodb. My vaadin project looks like this: i have two views, and they are working fine on their own, they are able to get data from database and save data to database , the problem starts when i add them to the tabs. it looks like the tabsheet is blocking the view to communicate with mongo repository. the object of those view are able to get values from the textfield but cant pass through the mongo repository

–this is my model

public class QaUser {
UUID id;
String featureTeam;
String userName;
String password;
String dataUsed;

public QaUser() {
}

public QaUser(UUID id, String userName, String password, String dataUsed, String featureTeam) {
    this.id =  UUID.randomUUID();
    this.featureTeam = featureTeam;
    this.userName = userName;
    this.password = password;
    this.dataUsed = dataUsed;
}

public QaUser( String userName, String password, String dataUsed,String featureTeam) {
    this.id =  UUID.randomUUID();
    this.featureTeam = featureTeam;
    this.userName = userName;
    this.password = password;
    this.dataUsed = dataUsed;
}

–this is my service

@SpringComponent

public class QaUserService extends VerticalLayout {

   @Autowired
    public UserRepo userRepo;
   
    public List<QaUser> getAllUser()
    {
        return userRepo.findAll();
    }
    public void  saveUser(QaUser qaUser)
    {
        userRepo.save(qaUser);
    }
    public List<QaUser> FindByFeatureTeam(String featureTeam)
    {
        return userRepo.findByFeatureTeam(featureTeam);
    }
    public void delete(QaUser qaUser)
    {
        userRepo.delete(qaUser);
    }

    public  static void test (){
        System.out.println("Hello............");
    }

}

this is my View

public class QaUserView extends VerticalLayout {

//@Autowired
 private  QaUserService qaUserService;
 @Autowired
public UserRepo userRepo;
private Grid<QaUser> qaUserGrid=new Grid<>(QaUser.class);
public List<QaUser> qaUserList ;
QaUser qaUser;
private VerticalLayout main;
private VerticalLayout layoutForGrid = new VerticalLayout();
private VerticalLayout addUserlabels=new VerticalLayout();
private VerticalLayout addUserTXT=new VerticalLayout();
private HorizontalLayout addFormLayout=new HorizontalLayout();
private HorizontalLayout addAndGridLoayout= new HorizontalLayout();
private Button addButton;
private Button save;
private Button delete;
private TextField username;
private TextField password;
private ComboBox<String> dataUsed;
private ComboBox<String> featureTeam;
private ComboBox<String> findByFeatureTeam;
private Label userNameLabel= new Label("Username");
private Label passwordLabel= new Label("Password");
private Label featureTeamLabel= new Label("Feature Team");
private Label dataUsedLabel= new Label("Data Used");



public QaUserView()
{
    onStart();
    addQaUserForm();
    findByFeatureTeam();
    selectedRow();

}

private void findByFeatureTeam() {

}

private void selectedRow() {

    qaUserGrid.addSelectionListener(selectionEvent ->{
                qaUser=qaUserGrid.asSingleSelect().getValue();
                main.removeAllComponents();
                addAndGridLoayout.addComponents(layoutForGrid,addFormLayout);
                main.addComponent(addAndGridLoayout);
                username.setValue(qaUser.getUserName());
                password.setValue(qaUser.getPassword());
                featureTeam.setValue(qaUser.getFeatureTeam());
                dataUsed.setValue(qaUser.getDataUsed());

            }
           );


}

private void addQaUserForm() {
    save=new Button("Save ");
    username=new TextField();
    password=new PasswordField();
    dataUsed=new ComboBox<>();
    featureTeam=new ComboBox<>();
    delete=new Button("Delete");
    save.addStyleName(ValoTheme.BUTTON_FRIENDLY);
    delete.addStyleName(ValoTheme.BUTTON_DANGER);

    dataUsed.setItems("Y","N");
    featureTeam.setItems("sap platform","sap archive","internal banking","AO","customer 1st");

    addUserlabels.addComponents(userNameLabel,passwordLabel,featureTeamLabel,dataUsedLabel);
    addUserTXT.addComponents(username,password,featureTeam,dataUsed,save, delete);
    addFormLayout.addComponents(addUserlabels,addUserTXT);

   // setContent(addFormLayout);

    save.addClickListener(clickEvent ->{
        qaUser=new QaUser(username.getValue(),password.getValue(),dataUsed.getValue(),featureTeam.getValue());
          //  qaUserService.userRepo.save(qaUser);
        userRepo.save(qaUser);

               clearFields();
                onStart();
            }
           );


}
private void clearFields()
{
    username.clear();
    password.clear();
    dataUsed.clear();
    featureTeam.clear();
}


private void onStart() {

    main=new VerticalLayout();
    main.removeAllComponents();
    addButton=new Button("Add");
    addButton.setStyleName(ValoTheme.BUTTON_PRIMARY);
    qaUserGrid.removeAllColumns();
 //   List<QaUser> allUser=qaUserService.getAllUser();
    qaUserGrid.addColumn(QaUser::getUserName).setCaption("Username");
    qaUserGrid.addColumn(QaUser::getPassword).setCaption("Password");
    qaUserGrid.addColumn(QaUser::getFeatureTeam).setCaption("Feature Team");
    qaUserGrid.addColumn(QaUser::getDataUsed).setCaption("Data Used");
   // qaUserGrid.setItems(allUser);
    layoutForGrid.removeAllComponents();
    layoutForGrid.addComponents(qaUserGrid,addButton);
    addButton.addClickListener(clickEvent ->{

        main.removeAllComponents();
        addAndGridLoayout.addComponents(layoutForGrid,addFormLayout);
        main.addComponent(addAndGridLoayout);
    } );
    main.addComponents(layoutForGrid);
    addComponent(main);

}

}

then here is the tabsheet that im trying to add view

@SpringUI
public class MainView extends UI {
public ComboBox globalFT=new ComboBox<>();
private VerticalLayout mainTabLayout;

@Override
protected void init(VaadinRequest vaadinRequest) {
    globalFT.setItems("sap platform","sap archive","internal banking","AO","customer 1st");
    mainTabLayout=new VerticalLayout();
    TabSheet maintab= new TabSheet();
    maintab.addTab(new DefaultPage(),"Main Tab");
    maintab.addTab(new QaUserView(),"QA User");
    maintab.addTab(new QaTestDataView(),"QA Test Data");


    maintab.addStyleName(ValoTheme.MENU_TITLE);
    maintab.setWidth(String.valueOf(1200));
    mainTabLayout.addComponents(new Label("Feature Team"), globalFT,maintab);
    setContent(mainTabLayout);

}

}