ModalOpen() / ModalClose()

Opens or closes a modal dialog programmatically. These functions use the Popover API in MaterializeCSS 2.1.1+.

Syntax
MaterialSB::ModalOpen(ModalElement)
MaterialSB::ModalClose(ModalElement)
Parameters
ModalElement The modal element returned by Modal().
Return Value

None.

Remarks

The modal must be initialized with Init() before it can be opened.

ModalOpen() calls the Popover API's showPopover() method, and ModalClose() calls hidePopover().

Example
Global confirmModal, infoModal

Procedure CloseConfirm()
  MaterialSB::ModalClose(confirmModal)
EndProcedure

Procedure ConfirmAction()
  MaterialSB::ModalClose(confirmModal)
  MaterialSB::Toast("Action confirmed!")
EndProcedure

Procedure ShowConfirm()
  MaterialSB::ModalOpen(confirmModal)
EndProcedure

Procedure ShowInfo()
  MaterialSB::ModalOpen(infoModal)
EndProcedure

Procedure CloseInfo()
  MaterialSB::ModalClose(infoModal)
EndProcedure

Procedure Main(Success)
  If Success
    ; Create confirmation modal
    confirmModal = MaterialSB::Modal()
    MaterialSB::ModalHeader("Confirm Delete")
    MaterialSB::ModalContent()
      MaterialSB::Append(MaterialSB::Paragraph("Are you sure you want to delete this item? This action cannot be undone."))
    MaterialSB::CloseCurrentParent()
    MaterialSB::ModalFooter()
      MaterialSB::Button("Cancel", @CloseConfirm(), MaterialSB::#Button_Text)
      MaterialSB::Button("Delete", @ConfirmAction())
    MaterialSB::CloseCurrentParent()
    MaterialSB::Init(confirmModal, #Null)
    
    ; Create info modal
    infoModal = MaterialSB::Modal(MaterialSB::#Modal_BottomSheet)
    MaterialSB::ModalContent()
      MaterialSB::Append(MaterialSB::Header("Information", 4))
      MaterialSB::Append(MaterialSB::Paragraph("This is a bottom sheet modal with additional information."))
    MaterialSB::CloseCurrentParent()
    MaterialSB::ModalFooter()
      MaterialSB::Button("Got it", @CloseInfo())
    MaterialSB::CloseCurrentParent()
    MaterialSB::Init(infoModal, #Null)
    
    ; Main content with buttons
    MaterialSB::Row(MaterialSB::#Grid_Container)
      MaterialSB::Col(12)
        MaterialSB::Button("Delete Item", @ShowConfirm())
        MaterialSB::Button("Show Info", @ShowInfo(), MaterialSB::#Button_Outlined)
      MaterialSB::CloseCurrentParent()
    MaterialSB::CloseCurrentParent()
  EndIf
EndProcedure

MaterialSB::Download(@Main())
See Also

Modal(), ModalContent(), ModalFooter(), Init()