fix(website): Snack playground never ran because dependencies were URL-encoded - #14
Merged
Merged
Conversation
…s them embed.js decodes data-snack-files before posting it to the iframe but forwards data-snack-dependencies verbatim, and Snack merges that value into its query state without decoding. The percent-encoded list was therefore treated as one unresolvable package name and the playground never ran. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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 the live site the embedded Snack loads the example code but never runs it. Snack's
embed.jsdecodesdata-snack-filesbefore posting it into the iframe but forwardsdata-snack-dependenciesverbatim, and the Snack app merges that value straight into its query state without decoding. The percent-encoded list (%40nikpnevmatikos%2Fhtml-renderer%2C...) was therefore treated as a single, unresolvable package name.Fix
Pass the dependencies list un-encoded in
website/src/components/SnackEmbed.tsx. Thefilesattribute stays encoded, sinceembed.jsdecodes that one.Verification
data-snack-dependencies=@nikpnevmatikos/html-renderer,@nikpnevmatikos/html-renderer-video,....embed.js(option parsing) andwebsite/src/client/components/EmbeddedApp.tsxin expo/snack.The Docs workflow deploys automatically on merge.
🤖 Generated with Claude Code