Fix asset editors crashing when the container has no site#127
Open
jakobploens wants to merge 1 commit into
Open
Fix asset editors crashing when the container has no site#127jakobploens wants to merge 1 commit into
jakobploens wants to merge 1 commit into
Conversation
Assets aren't site-scoped, so an asset publish container's `site.value` is undefined. initializeEcho() called `.replaceAll` on it unconditionally, throwing in the workspace init (a mounted hook) and preventing the asset editor from rendering its fields. Build the channel name without the site segment when no site is present (and use optional chaining), so asset editing works and assets still get a stable presence channel keyed by their reference. Fixes statamic#126
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
On Statamic 6, opening any asset editor throws and the editor's fields never render:
Assets aren't site-scoped, so the asset publish container has no
site.Workspace.initializeEcho()builds the channel name as:container.site.valueisundefinedfor assets →.replaceAllthrows during workspace init (a mounted hook), aborting the editor render. Reproduces on every asset container in a single-site install.Fix
Build the channel without the site segment when no site is present (and use optional chaining). Entries/terms (which have a site) are unchanged; assets now get a stable, site-less presence channel keyed by their reference instead of crashing.
Fixes #126.