- Profils stockés dans profiles.json (userData), profil "Défaut" rétro-compatible - Chaque profil a son propre historique de sessions et app state (fichiers suffixés par id) - Drop stats : mode Privé (fichier propre) ou Partagé (pool dropstats-shared.json commun) - Bouton 👤 dans la topbar ouvre une modal de gestion des profils - Créer, renommer (double-clic), supprimer, activer un profil - Basculer le mode de drop stats (Privé ↔ Partagé) par profil - timers et alertes isolés par profil via clés localStorage préfixées par profil id - Switch de profil = rechargement de page (données propres sans état résiduel) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
2.0 KiB
JavaScript
37 lines
2.0 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('api', {
|
|
pickFolder: () => ipcRenderer.invoke('pick-folder'),
|
|
checkLogPath: (p) => ipcRenderer.invoke('check-log-path', p),
|
|
getFileSize: (p) => ipcRenderer.invoke('get-file-size', p),
|
|
readChunk: (p, start, end) => ipcRenderer.invoke('read-chunk', p, start, end),
|
|
|
|
loadAppState: () => ipcRenderer.invoke('load-app-state'),
|
|
saveAppState: (obj) => ipcRenderer.invoke('save-app-state', obj),
|
|
|
|
loadDropStats: () => ipcRenderer.invoke('load-drop-stats'),
|
|
saveDropStats: (obj) => ipcRenderer.invoke('save-drop-stats', obj),
|
|
exportDropStats: () => ipcRenderer.invoke('export-drop-stats'),
|
|
importMergeDropStats: () => ipcRenderer.invoke('import-merge-drop-stats'),
|
|
|
|
loadCommunityDropStats: () => ipcRenderer.invoke('load-community-drop-stats'),
|
|
saveCommunityDropStats: (obj) => ipcRenderer.invoke('save-community-drop-stats', obj),
|
|
syncDropStats: (serverUrl, clientId, dropStats) =>
|
|
ipcRenderer.invoke('sync-drop-stats', { serverUrl, clientId, dropStats }),
|
|
fetchCommunityStats: (serverUrl) => ipcRenderer.invoke('fetch-community-stats', { serverUrl }),
|
|
getFilePaths: () => ipcRenderer.invoke('get-file-paths'),
|
|
|
|
loadSessionHistory: () => ipcRenderer.invoke('load-session-history'),
|
|
saveSessionHistory: (obj) => ipcRenderer.invoke('save-session-history', obj),
|
|
|
|
checkUpdateManual: () => ipcRenderer.invoke('check-update-manual'),
|
|
onUpdateProgress: (cb) => ipcRenderer.on('update-progress', (_, data) => cb(data)),
|
|
|
|
getProfiles: () => ipcRenderer.invoke('get-profiles'),
|
|
createProfile: (name, mode) => ipcRenderer.invoke('create-profile', { name, dropStatsMode: mode }),
|
|
switchProfile: (id) => ipcRenderer.invoke('switch-profile', id),
|
|
renameProfile: (id, name) => ipcRenderer.invoke('rename-profile', { id, name }),
|
|
deleteProfile: (id) => ipcRenderer.invoke('delete-profile', id),
|
|
setDropStatsMode: (id, mode) => ipcRenderer.invoke('set-drop-stats-mode', { id, mode }),
|
|
});
|