Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outlets: Add observers for controller element attributes #624

Merged
merged 6 commits into from
Jan 30, 2023

Commits on Dec 22, 2022

  1. Extract DomTestCase helpers

    In some cases, calls to `Element.setAttribute`,
    `Element.removeAttribute`, `Node.appendChild`, or `Element.remove` must
    be followed up with a call to `await this.nextFrame` so that Stimulus
    has an opportunity to synchronize.
    
    This commit introduces asynchronous helper method versions of those
    calls that bake-in the subsequent call to `this.nextFrame`.
    seanpdoyle committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    0201581 View commit details
    Browse the repository at this point in the history
  2. Outlets: Add observers for controller element attributes

    With the current Outlet implementation, they're only ever connected or
    disconnected when an element _matching_ the outlet selector connects or
    disconnects. The selector _declared on the controller_ element can only
    ever be set once: when it's connected. If that attribute ever changes
    (for example, when it's set to a new value or removed entirely), the
    outlets are not updated.
    
    This commit adds test coverage to ensure the list of outlets and their
    items is synchronized with changes on both sides: when matching elements
    are connected and disconnected _as well as_ when the selector that
    dictates whether or not they match is added, updated, or removed.
    
    To do so, this commit extends the `SelectorObserver` to also manage the
    lifecycle of an `AttributeObserver` instance alongside its internally
    managed `ElementObserver`.
    seanpdoyle committed Dec 22, 2022
    Configuration menu
    Copy the full SHA
    0c75ffd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    492555a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    971004a View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2023

  1. Configuration menu
    Copy the full SHA
    4ff1250 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    700c67b View commit details
    Browse the repository at this point in the history