Files
dictia-public/static/js/modules/db/incognito-storage.js

77 lines
2.0 KiB
JavaScript

/**
* Incognito Mode storage utilities
* Uses sessionStorage for temporary storage that auto-clears when tab closes
*/
const INCOGNITO_KEY = 'speakr_incognito_recording';
/**
* Save incognito recording data to sessionStorage
* @param {Object} data - Recording data including transcription, summary, title
*/
export function saveIncognitoRecording(data) {
try {
sessionStorage.setItem(INCOGNITO_KEY, JSON.stringify(data));
console.log('[Incognito] Recording saved to sessionStorage');
} catch (e) {
console.error('[Incognito] Failed to save recording:', e);
}
}
/**
* Get incognito recording data from sessionStorage
* @returns {Object|null} Recording data or null if not found
*/
export function getIncognitoRecording() {
try {
const data = sessionStorage.getItem(INCOGNITO_KEY);
return data ? JSON.parse(data) : null;
} catch (e) {
console.error('[Incognito] Failed to retrieve recording:', e);
return null;
}
}
/**
* Clear incognito recording from sessionStorage
*/
export function clearIncognitoRecording() {
try {
sessionStorage.removeItem(INCOGNITO_KEY);
console.log('[Incognito] Recording cleared from sessionStorage');
} catch (e) {
console.error('[Incognito] Failed to clear recording:', e);
}
}
/**
* Check if an incognito recording exists
* @returns {boolean}
*/
export function hasIncognitoRecording() {
try {
return sessionStorage.getItem(INCOGNITO_KEY) !== null;
} catch (e) {
return false;
}
}
/**
* Update specific fields of the incognito recording
* @param {Object} updates - Fields to update
*/
export function updateIncognitoRecording(updates) {
try {
const existing = getIncognitoRecording();
if (existing) {
const updated = { ...existing, ...updates };
saveIncognitoRecording(updated);
return updated;
}
return null;
} catch (e) {
console.error('[Incognito] Failed to update recording:', e);
return null;
}
}