Initial release: DictIA v0.8.14-alpha (fork de Speakr, AGPL-3.0)
This commit is contained in:
76
static/js/modules/db/incognito-storage.js
Normal file
76
static/js/modules/db/incognito-storage.js
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user