Responding to geometry changes in SwiftUI

Adapt a SwiftUI interface to its available space using the onGeometryChange() modifier, while limiting state updates to the geometry changes that matter.