- Shipped
- July 31, 2026 at 8:13 PM UTC
- Author
- kamo
- Commit
- 0729d2a
The composer re-resolved a template's image sources whenever the template config changed, and for 'member-avatar' it guessed the URL from whichever of signatureImageUrl / headerImageUrl / footerImageUrl happened to be set. That is only correct when the member fetch lands after the template fetch and the scope is never switched; otherwise the avatar resolved to '' (no photo) or to the company logo sitting in another slot. Both composers now keep the resolved member-avatar / logo URLs in state and derive every template image URL from them, with the resolver and its type shared from useImageResolver so the settings editor and the composers agree. The effect re-runs when those URLs land, so load order no longer matters.