CodeNewbie Community 🌱

Abdulrahman Noble
Abdulrahman Noble

Posted on

How to invoke dialog modal from module instead of using directly showModal() method

Good day! I need to have 2 different models to create projects and todo lists. I've figured out, that for html there is only one dialog menu that can be invoked with window.dialog.showModal(); directly. So then, I've created dialogModule file to store dialog model code for project pop-up model. Here is the code inside this module:

export const dialog = document.getElementById("project-dialog");
export const open = document.getElementById("open");
export const cancel = document.getElementById("cancel");
export const close = document.getElementById("close");


export let openModel = open.addEventListener("click", () => {
    dialog.showModal();
});

export let cancelModel = cancel.addEventListener("click", () => {
    dialog.close();
});

export let closeMondel = close.addEventListener("click", () => {
    dialog.close();
});
Enter fullscreen mode Exit fullscreen mode

And when I want to invoke project model menu, nothing happens.
Function that supposes invoking model:

import { dialog, open, openModel } from "./dialogModule";

function updateProjectItems(e) {
  openModel;
  const div = e.parentElement.parentElement.querySelector("div");
  projectValue.value = div.innerText;

  updateText = e.parentElement.parentElement.querySelector("div");
  addProjectUpdate.setAttribute("onclick", "UpdateOnSelectionProjects()");
  projectValue.focus();
}

Enter fullscreen mode Exit fullscreen mode

With updating todo list it has window.dialog.showModal();:

function UpdateToDoItems(e) {
    if (
      e.parentElement.parentElement.querySelector("div").style.textDecoration ===
      ""
    ) {
      window.dialog.showModal();
      const values = e.parentElement.parentElement.querySelectorAll("#values");
      todoValue.value = values[0].innerText;
      todoDescription.value = values[1].innerText;
      todoDate.value = values[2].innerText;
      todoPriority.value = values[3].innerText;


      updateText = e.parentElement.parentElement.querySelectorAll("#values");
      addUpdate.setAttribute("onclick", "UpdateOnSelectionItems()");
      todoValue.focus();
    }
}
Enter fullscreen mode Exit fullscreen mode

I use variable for projects to summon a pop-up menu, which is not working. What can I do to fix it?
Here is my full repo: github repo

Top comments (5)

Collapse
 
abbaskhan8008 profile image
Abbas Khan

we provide high-quality used auto spare parts in Sajaa, Sharjah, covering models from 2015 to 2024. Our parts are carefully inspected to ensure they meet the best standards, offering reliable performance for your vehicle. The sajaa used spare parts market in Sharjah is a popular place for finding affordable, high-quality spare parts for various car models.

Collapse
 
progressiveblock7 profile image
Progressive Block

"To invoke a dialog modal from a module instead of using showModal directly, you can use a Progressive Block to manage the modal's state and visibility. This approach offers more flexibility, allowing you to trigger the modal through controlled functions or events, making your code more modular and maintainable.

Collapse
 
charlotteolivia profile image
Charlotte Olivia

"To invoke a dialog modal from a module instead of directly using showModal(), you can create a method within your module that triggers the modal when needed. It's like how sometimes, you don’t show your emotions but wait for the right moment. As the Sad Alone Shayari goes, "Aankhon mein aansu, dil mein udaasi, zindagi ke is pal mein kuch bhi nahi hai, bas ek khali pan hai." Similarly, invoking the modal in this way allows you to control the moment, bringing the right interaction at the right time."

Collapse
 
rabiamugal56 profile image
Rabia Mugal

Bu modüler yaklaşım, özellikle kastamonu fen lisesi taban puanı gibi dinamik verilerle çalışırken, farklı modalların taban puanı değerlerine göre belirli içerikleri gösterebileceği durumlarda, modal kullanımının kolaylaştırılmasına yardımcı olur.

Collapse
 
alejandroluis profile image
Alejandro Luis

"To invoke a dialog modal from a module instead of directly using showModal, you can trigger it via an event handler or a function within the module that calls showModal indirectly. This approach ensures better separation of concerns and improves the modularity of your code. In a film app, this method would allow you to manage modal dialogs more efficiently across different components or features."