- name
- uno-navigation-dialogs
- description
- Display dialogs, flyouts, modals, and message prompts using Uno Platform Navigation Extensions.
- when_to_use
- Use when showing a simple alert, confirmation, or message dialog with OK/Cancel options, getting a user response from a dialog via `ShowMessageDialogAsync`, showing a dialog or flyout via navigation, using `ContentDialog` as a navigation modal, understanding the difference between flyout (Page-based) and modal (ContentDialog-based), or getting results from dialog navigation.
- metadata
- {"author":"uno-platform","version":"2.4","category":"navigation"}
# Uno Navigation Dialogs โ Agent Skill
## Workflow
> **Docs lookup:** call `uno_platform_docs_search(...)` first, then `uno_platform_docs_fetch(sourcePath="โฆ")` using the `sourcePath` field from a result (a relative `.md` path; add the result's `anchor` for a section). Never pass a URL, a `.html` link, or a hand-built path.
### Step 1: Fetch the Dialog Navigation Documentation
```
uno_platform_docs_search("Uno Navigation dialogs flyouts ContentDialog modal ShowMessageDialogAsync confirmation alert")
```
Primary documentation pages:
- **Display Dialogs as Flyouts or Modals**: `external/uno.extensions/doc/Learn/Navigation/Walkthrough/ShowDialog.md`
- **How-To: Display a Dialog**: `external/uno.extensions/doc/Learn/Navigation/HowTo-ShowDialog.md`
Fetch the walkthrough:
```
uno_platform_docs_fetch(sourcePath="external/uno.extensions/doc/Learn/Navigation/Walkthrough/ShowDialog.md")
```
### Step 2: For Simple Message Dialogs
Use `navigator.ShowMessageDialogAsync(...)` for the simplest case โ a title, message, and buttons that return the user's choice. No route registration needed.
### Step 3: For Flyout vs Modal
- **Flyout**: navigation target is a `Page` โ displayed as flyout
- **Modal**: navigation target is a `ContentDialog` โ displayed as modal
### Step 4: For Dialog Results
If the user needs to return data from a dialog:
See the `uno-navigation-data` skill for `NavigateBackWithResultAsync`.
## Key Principles (Stable)
- Message dialogs are the simplest dialog type โ title, message, and buttons via `navigator.ShowMessageDialogAsync(...)`, no route registration required
- Use `!/` qualifier prefix or `Qualifiers.Dialog` to open a `Page`/`ContentDialog`-based dialog via navigation
- If the target is a `Page`, it displays as a flyout
- If the target is a `ContentDialog`, it displays as a modal
- Dialog results can be returned via `NavigateBackWithResultAsync` (or directly from `ShowMessageDialogAsync` for the simple case)
- Dialogs participate in the navigation system โ they have proper back-stack handling
## Related Skills
- [[uno-navigation-qualifiers]] โ Qualifier prefixes
- [[uno-navigation-data]] โ Passing/returning data
- [[uno-navigation-code]] โ Programmatic navigation
View on GitHub