https://sonarly.com/issue/38244?type=bug
Saving Record Page Layout fails when reordering field sections because the fields-widget upsert path hard-fails if the widget has no linked view.
Fix: I implemented a user-impacting fix so saves no longer fail when legacy FIELDS widgets are missing `configuration.viewId`:
1) `useCreatePendingFieldsWidgetViews` now repairs missing `viewId` values for draft FIELDS widgets before save by generating UUIDs, writing them back to draft layout state, and creating the corresponding pending views.
2) It now persists views not only for brand-new FIELDS widgets, but also for existing widgets whose persisted `viewId` differs (including `null -> generated-id` repair).
3) In `useSaveLayoutCustomization`, I moved the dirty-check to run *after* pending view creation and draft refresh, so repaired `viewId` changes are included in `updatePageLayoutWithTabsAndWidgets` before `upsertFieldsWidget` executes. This prevents server-side `viewId` null failures on reorder/save.
This keeps behavior aligned with existing save architecture (create pending views first, then persist layout, then save widget data) while making legacy null-`viewId` widgets recoverable during normal save.
Authored by Sonarly by autonomous analysis (run 43654).