Skip to content

Conversation

dfeinzimer
Copy link
Collaborator

@dfeinzimer dfeinzimer commented Aug 15, 2025

Builds on @zkline101's work in #1034 to enhance FeatureFormView by converting the internal VStack to a List.

Since #1034, FeatureFormView has grown in complexity to support UtilityAssociationsFormElements. As part of that work, FeatureFormGroupedContentView was needed to mimic the appearance of a section in a list. FeatureFormView was also refactored to wrap a new internal EmbeddedFeatureFormView with a NavigationStack. With more form elements in the pipeline, now is a good time to revisit adopting platform provided types like List to streamline future enhancement work.

Issues

  • A GroupFormElement will revert to its initial expanded/collapsed state when it's scrolled out-of and back into view.
  • UI tests require manual scrolling to targeted form elements due to the lazy nature of a list.
    • This scrolling is unstable on Mac Catalyst (FB19836397)
  • Section headers are cut off by the navigation bar when form elements are focused & scrolled-to. (FB19740517)

Considerations

  • We lose the ability to remove the border around read-only elements. We have to indicate read-only via another manner.
  • Semantically, Form makes more sense than List, however I've found no practical visual difference between the two. List also has a convenient init(_:id:editActions:rowContent:) that lets us avoid an inner ForEach. Form does not provide the same.

@dfeinzimer dfeinzimer self-assigned this Aug 20, 2025
@dfeinzimer dfeinzimer changed the title FeatureFormView: Use List FeatureFormView - Use List Aug 22, 2025
@dfeinzimer dfeinzimer changed the base branch from v.next to philium/remove-deprecated-APIs August 25, 2025 21:44
Base automatically changed from philium/remove-deprecated-APIs to v.next August 25, 2025 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant