fix: rApp shapes auto-derive space context and load as applets directly
- folk-rapp now auto-derives spaceSlug from the current URL path
(/{space}/canvas → space) so embedded rApps always know their space
- Fixed race condition where createRenderRoot overwrote moduleId
that was already set via JS property setter (showed picker instead
of loading the module directly)
- newShapeElement always passes communitySlug as fallback spaceSlug
when restoring folk-rapp shapes from sync
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0c00a69d8a
commit
09d23f8fc1
|
|
@ -340,8 +340,15 @@ export class FolkRApp extends FolkShape {
|
|||
override createRenderRoot() {
|
||||
const root = super.createRenderRoot();
|
||||
|
||||
this.#moduleId = this.getAttribute("module-id") || "";
|
||||
this.#spaceSlug = this.getAttribute("space-slug") || "";
|
||||
// Prefer JS-set properties (from newShape props); fall back to HTML attributes
|
||||
if (!this.#moduleId) this.#moduleId = this.getAttribute("module-id") || "";
|
||||
if (!this.#spaceSlug) this.#spaceSlug = this.getAttribute("space-slug") || "";
|
||||
|
||||
// Auto-derive spaceSlug from current URL if not explicitly provided (/{space}/canvas → space)
|
||||
if (!this.#spaceSlug) {
|
||||
const pathParts = window.location.pathname.split("/").filter(Boolean);
|
||||
if (pathParts.length >= 1) this.#spaceSlug = pathParts[0];
|
||||
}
|
||||
|
||||
const meta = MODULE_META[this.#moduleId];
|
||||
const headerColor = meta?.color || "#475569";
|
||||
|
|
@ -530,7 +537,11 @@ export class FolkRApp extends FolkShape {
|
|||
</div>
|
||||
`;
|
||||
|
||||
// Create iframe
|
||||
// Auto-derive space from URL if still missing
|
||||
if (!this.#spaceSlug) {
|
||||
const pathParts = window.location.pathname.split("/").filter(Boolean);
|
||||
if (pathParts.length >= 1) this.#spaceSlug = pathParts[0];
|
||||
}
|
||||
const space = this.#spaceSlug || "demo";
|
||||
const iframeUrl = `/${space}/${this.#moduleId}`;
|
||||
|
||||
|
|
|
|||
|
|
@ -1395,7 +1395,7 @@
|
|||
case "folk-rapp":
|
||||
shape = document.createElement("folk-rapp");
|
||||
if (data.moduleId) shape.moduleId = data.moduleId;
|
||||
if (data.spaceSlug) shape.spaceSlug = data.spaceSlug;
|
||||
shape.spaceSlug = data.spaceSlug || communitySlug;
|
||||
break;
|
||||
case "folk-feed":
|
||||
shape = document.createElement("folk-feed");
|
||||
|
|
|
|||
Loading…
Reference in New Issue