Skip to content

refactor: prepare shared DashKit lifecycle for alternate layouts - #328

Open
daniil-filippov-dev wants to merge 5 commits into
mainfrom
daniil-filippov-dev/UXRFC-664-gridstack-preparation
Open

daniil-filippov-dev wants to merge 5 commits into
mainfrom
daniil-filippov-dev/UXRFC-664-gridstack-preparation

Conversation

@daniil-filippov-dev

@daniil-filippov-dev daniil-filippov-dev commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

🤖 AI TLDR

Prepare shared DashKit lifecycle and flat layout contracts for an additional adapter; prevent stale widget readiness and empty no-op change events.

🤖 AI-generated

Extract the existing lifecycle, registration singleton and ref/event methods into a shared base. The root entry keeps the legacy layout. Ignore stale Item/Text load completions and report Text readiness after its DOM update; four readiness checks exercise the shared modules once without either layout engine.

Add ten reusable common flat scenarios on the real legacy renderer: drag/restore, no-op, incremental baseline/params, subscriptions, CRUD/refs, hidden-group membership, view/edit identity, visual autoheight/reset, async readiness and flat statics. #329 adds GridStack to the same runner with identical expectations. Pure shared event regressions run once; existing legacy suites remain active through normal npm test.

Compare canonical saved geometry when gating change events so enriched plugin defaults cannot create empty-patch history entries. Additions, removals and order changes still emit. Update Gulp to 5.0.1 and exclude test sources from published output.

This PR has no GridStack dependency, runtime, public subpath or nested schema. The opt-in implementation follows in #329. Merge this preparation first; then update the feature branch from main and retarget #329 before merging it.

Validation: 109 Jest tests in 13 suites passed on Node 22.22.0; types, scoped lint, styles/format and ESM/CJS build passed. Final a16b7c8 only names the unchanged engine table; executable scenario equivalence, types, scoped lint and all ten flat cases were checked. Final-head GitHub CI is green. Thirteen runtime snapshots and 4,484 resolution edges contained no GridStack imports.

Fresh independent Codex sessions applied codebase-design, ponytail-review and review-pull-request to the final head. No actionable findings remained. The last review included independent parallel Standards and Spec passes, each with zero findings and 24 focused tests passed. Real downstream performance, browser/touch and other React peer versions were outside these preparation reviews.

@gravity-ui-bot

Copy link
Copy Markdown
Contributor

Preview is ready.

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.

2 participants