Skip to content

Commit ba11382

Browse files
jeremymanningclaude
andcommitted
Fix shared view localStorage interference and update OG preview
Block persistentAtom from writing shared token responses to localStorage by overriding setItem for the session. Update OG preview image to show realistic heatmap with correct/incorrect answer dots. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent e9ae15d commit ba11382

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

public/og-preview.png

-22.2 KB
Loading

src/app.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -946,20 +946,24 @@ function injectSharedResponses(responses) {
946946
globalEstimator.reset();
947947
globalEstimator.init(GLOBAL_GRID_SIZE, GLOBAL_REGION);
948948

949-
// Back up the user's own responses before overwriting with shared data
949+
// Save the user's own responses before we touch the store
950950
const ownResponses = localStorage.getItem('mapper:responses');
951-
if (ownResponses) {
952-
localStorage.setItem('mapper:responses:backup', ownResponses);
953-
}
954951

955-
// Set responses on the store (overrides any local responses)
952+
// Prevent persistentAtom from writing shared responses to localStorage.
953+
// Block all writes to 'mapper:responses' for the entire shared view session,
954+
// since subscriptions/computed atoms may trigger re-persists at any time.
955+
const origSetItem = localStorage.setItem.bind(localStorage);
956+
localStorage.setItem = function(key, value) {
957+
if (key === 'mapper:responses') return; // block shared data from persisting
958+
origSetItem(key, value);
959+
};
960+
961+
// Set responses on the store (updates in-memory only, localStorage write is blocked)
956962
$responses.set(responses || []);
957963

958-
// Restore the backup so navigating away doesn't lose the user's own progress
964+
// Ensure user's own data stays intact in localStorage
959965
if (ownResponses) {
960-
localStorage.setItem('mapper:responses', ownResponses);
961-
} else {
962-
localStorage.removeItem('mapper:responses');
966+
origSetItem('mapper:responses', ownResponses);
963967
}
964968

965969
if (!responses || responses.length === 0) {

src/img/og-preview.png

-22.2 KB
Loading

0 commit comments

Comments
 (0)