Read the review card fill from localStorage before picking a new one.

The review screen’s effect ran before draft hydration, so reload always generated a fresh color and overwrote the stored one.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
adilalloandCursor committed 2026-09-29 14:05:30 -06:00
1 parent 6d536880fe
commit b12de611f7
5 files changed
+199 -27

No files matched your search

@@ -34,6 +34,10 @@ import {
vectorMarkPath,
} from "../../../../../lib/assetUtils";
import { isPreviewSurfaceColor } from "../../../../../lib/create/previewSurfaceColor";
import {
persistDraftPreviewSurfaceColor,
readDraftPreviewSurfaceColor,
} from "../../utils/resolvePreviewSurfaceFallback";
const FACET_FALLBACK_ORDER: readonly TemplateFacetGroupKey[] = [
"coreValues",
@@ -247,12 +251,19 @@ export function FinalReviewScreen({
: undefined;
const persistFallback = useCallback(
(color: string) => {
replaceState((prev) =>
prev.previewSurfaceColor &&
isPreviewSurfaceColor(prev.previewSurfaceColor)
replaceState((prev) => {
persistDraftPreviewSurfaceColor(color, prev);
const keep =
(prev.previewSurfaceColor &&
isPreviewSurfaceColor(prev.previewSurfaceColor)
? prev.previewSurfaceColor
: undefined) ??
readDraftPreviewSurfaceColor() ??
color;
return prev.previewSurfaceColor === keep
? prev
: { ...prev, previewSurfaceColor: color },
);
: { ...prev, previewSurfaceColor: keep };
});
},
[replaceState],
);