Skip to content

feat: sunset scene editor create/edit and redirect editor routes - #3488

Open
cyaiox wants to merge 1 commit into
masterfrom
sunset/1-behavior-sunset
Open

feat: sunset scene editor create/edit and redirect editor routes#3488
cyaiox wants to merge 1 commit into
masterfrom
sunset/1-behavior-sunset

Conversation

@cyaiox

@cyaiox cyaiox commented Sep 1, 2026

Copy link
Copy Markdown
Member

Feature Description

First layer of the web scene editor sunset. The web builder no longer lets users create or edit scenes — creators move to the desktop Creator Hub (the in-app CreatorHubUpgradeModal already points there). This PR removes the create/edit entry points from the UI and hard-blocks the editor and template routes so bookmarked or pasted URLs can't reach them either. Downloading, deleting, and unpublishing scenes are unaffected.

User Story

As a Decentraland creator, I can no longer create or edit scenes in the web builder (that capability moves to Creator Hub), but my existing scenes stay visible and their detail pages remain accessible so I can still download, unpublish, or delete them.

Type of Change

  • New feature

Implementation Details

Bottom of the sunset stack (base: master). Purely UI + routing; no data or redux changes.

Architecture

The editor/template routes are removed from the desktop <Switch> in AppRoutes and replaced with <Redirect>s to locations.scenes(), placed before the catch-all so old URLs land on the scene list rather than the home page. The create/edit affordances are removed from the two pages that hosted them.

Key Files Changed

File Change
src/routing/AppRoutes/AppRoutes.tsx Remove EditorPage/InspectorPage/TemplatesPage/TemplateDetailPage routes + lazy imports; add redirects for /scene-editor, /inspector, /templates, /templates/:id/scenes
src/components/ScenesPage/ScenesPage.tsx Remove the create-from-scratch/template selector from the empty state
src/components/SceneDetailPage/SceneDetailPage.tsx Remove the "Edit scene" button and the title rename pencil (EditProjectModal); keep Download, Delete, Unpublish, deployments
src/routing/AppRoutes/AppRoutes.spec.tsx New: assert each sunset route redirects to /scenes

API Changes

No API changes.

Database Changes

  • No database changes

How to Test

  1. Go to /scenes — the "create from scratch / from template" tiles are gone; the Creator Hub upgrade modal still opens.
  2. Open a scene at /scenes/:id — no "Edit scene" button and no title pencil; Download, Delete, and Unpublish are still present and work.
  3. Navigate directly to /scene-editor/<id>, /inspector/<id>, /templates, /templates/<id> — each redirects to /scenes.

Edge Cases Considered

  • Bookmarked/pasted editor and template URLs (incl. :projectId/:templateId params) redirect rather than 404 or fall through to the home page.
  • Redirects are ordered before the catch-all so precedence is deterministic.

Checklist

  • Code follows the project's style guidelines
  • Self-reviewed the code
  • Added unit tests for new functionality (route redirects)
  • Added integration tests where applicable
  • Existing tests pass locally (1588/1588)
  • Updated documentation
  • Tested on mobile (if UI change)
  • No new warnings or console errors introduced
  • Backwards compatible

Feature Flag

  • No feature flag needed

Related Issues

Part of the web scene editor sunset stack. Base branch: master. Followed by the viewer/Unity removal, inspector removal, migrate-on-download, and dead-code sweep.

Screenshots / Demo

UI removals + redirects; no new surface to show.

Deployment Notes

None.

@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
builder Ready Ready Preview Sep 2, 2026 2:17pm UTC

Request Review

@coveralls

coveralls commented Sep 1, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 33640786636

Coverage increased (+0.3%) to 54.039%

Details

  • Coverage increased (+0.3%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 13429
Covered Lines: 7860
Line Coverage: 58.53%
Relevant Branches: 6020
Covered Branches: 2650
Branch Coverage: 44.02%
Branches in Coverage %: Yes
Coverage Strength: 37.44 hits per line

💛 - Coveralls

@cyaiox
cyaiox marked this pull request as ready for review September 1, 2026 14:45

@decentraland-bot decentraland-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Review — Approve

Clean, focused sunset PR that removes scene editor create/edit functionality and gracefully redirects old routes to the scene list.

What this PR does

  • SceneDetailPage: Removes the project-rename edit icon and the "Edit Scene" button, along with their handleEditClick and handleEditScene callbacks
  • ScenesPage: Removes the SceneCreationSelector component (scene creation entry point)
  • AppRoutes: Removes lazy imports and <Route> entries for EditorPage, InspectorPage, TemplatesPage, TemplateDetailPage; adds <Redirect> entries pointing all four sunset routes to /scenes
  • AppRoutes.spec.tsx: New test validating all four redirects using it.each with concrete IDs

Findings

No P0 or P1 issues found.

[P2] Branch naming (ADR-6): Branch sunset/1-behavior-sunset uses a non-standard prefix. ADR-6 expects (chore|docs|feat|fix|refactor|style|test)/<summary>. Something like feat/sunset-scene-editor would be more conventional. Not blocking — the PR title feat: sunset scene editor create/edit and redirect editor routes follows the semantic commit format correctly, and that becomes the squash commit message.

[P2] Test cleanup — window.innerWidth not restored: The test sets window.innerWidth = 1280 in beforeEach but doesn't restore the original value in an afterEach. Minor issue since it's the only describe block today, but good hygiene for a test file likely to grow.

[P2] Dead component files (expected in stack): EditorPage, InspectorPage, TemplatesPage, TemplateDetailPage, and SceneCreationSelector are no longer imported/routed but their source files still exist. This is expected for a stacked PR series (noted in the PR body) — just confirming these should be cleaned up in a subsequent PR in the stack.

Security review

No security issues found. The redirects use hardcoded internal paths (no user-controlled redirect targets), landing on a ProtectedRoute — no open redirect, auth bypass, or injection risk. No secrets or sensitive data in the diff.

Consumer impact

No public API surface changed. This is a purely frontend UI/routing change within the builder app. No downstream consumers affected.

CI status

All checks passing ✅ (audit, test, Vercel preview deployed)

Routing verification

Confirmed via locations.ts that the no-arg forms return proper React Router patterns (/scene-editor/:projectId, /inspector/:projectId, /templates, /templates/:templateId). The <Redirect from> entries inside <Switch> correctly match parameterized paths and redirect to /scenes. Placement is correct — after all real routes, before the catch-all <Redirect to={locations.root()} />.


Reviewed by Jarvis 🤖 · Requested by Gabriel Díaz (<@U03MGHMAJL8>) via Slack

Remove the create-scene selector, the edit-scene button, and the title
rename affordance. Hard-block the editor and template routes by
redirecting them to the scene list. Download, delete, and unpublish stay.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants