You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wave C: detect the Shell flyout-template contract by concept, not by name
The proposed API has changed shape twice while this adapter sat here: the
internal GetBindableObjectWithFlyoutItemTemplate, then a three-method contract,
and now a single resolve-style call. Each time the expiry test named members
explicitly it silently stopped detecting anything - worse than having no test,
because a green build then implies the adapter is still needed.
The detector now matches the concept: any new public Shell member about a
flyout item template. It is covered by table-driven tests proving it fires for
the resolve-style shape, the three-method shape and plausible alternatives,
while ignoring pre-existing members - so it is verified to trigger rather than
merely assumed to.
dotnet/maui#37862 remains OPEN and under design. No shape is adopted;
ShellTemplateResolver's implementation is untouched.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
"Shell.IsFlyoutItemTemplateSet / GetFlyoutItemTemplateSource / GetFlyoutItemTemplateProperty (proposed in dotnet/maui#37862, open)",
45
+
"A public flyout item template contract on Shell (dotnet/maui#37862, OPEN and still being designed - currently moving toward a single resolve-style call returning the final DataTemplate)",
46
46
nameof(ShellTemplateResolver),
47
-
"Any backend rendering a flyout must resolve which element owns the item template. Only partially reproducible off-tree: the MenuShellItem redirect cannot be expressed at all because MenuShellItem and its MenuItem property are both internal, so bare MenuItems in a flyout fall back to the shell-level template. Upstream dotnet/maui#37862 proposes a public contract with a different shape to the internal helper; it is OPEN, so the adapter stays provisional and the API must not be baked in before it merges and ships in a referenced package."),
47
+
"Any backend rendering a flyout must resolve which element owns the item template. Only partially reproducible off-tree: the MenuShellItem redirect cannot be expressed at all because MenuShellItem and its MenuItem property are both internal, so bare MenuItems in a flyout fall back to the shell-level template. Upstream dotnet/maui#37862 is OPEN and its shape is still moving (internal helper -> three-method contract -> single resolve-style call). The adapter stays provisional and no shape is baked in until the design merges and ships in a referenced package; the expiry test matches the concept rather than any proposed name."),
0 commit comments