Refactor ScribeChapterComponent and offline handlers for seamless local and server operations

- Add stricter typings (`RefObject`) and improve type safety.
- Introduce conditional logic for `localBook` to
This commit is contained in:
natreex
2025-12-19 10:39:59 -05:00
parent f5e66f8983
commit 43c7ef375c
4 changed files with 81 additions and 42 deletions

View File

@@ -205,13 +205,11 @@ function ScribeContent() {
let serverBooksResponse: SyncedBook[] = [];
if (!isCurrentlyOffline()){
// Mode online: récupérer les livres du serveur ET de la DB locale
if (offlineMode.isDatabaseInitialized) {
localBooksResponse = await window.electron.invoke<SyncedBook[]>('db:books:synced');
}
serverBooksResponse = await System.authGetQueryToServer<SyncedBook[]>('books/synced', session.accessToken, locale);
} else {
// Mode offline: récupérer uniquement depuis la DB locale
if (offlineMode.isDatabaseInitialized) {
localBooksResponse = await window.electron.invoke<SyncedBook[]>('db:books:synced');
}
@@ -364,13 +362,6 @@ function ScribeContent() {
console.error('[Page] Error initializing user:', error);
}
}
setSession({
isConnected: true,
user: user,
accessToken: token,
});
setCurrentCredits(user.creditsBalance)
setAmountSpent(user.aiUsage)
if (window.electron && user.id) {
try {
const dbInitialized:boolean = await initializeDatabase(user.id);
@@ -392,6 +383,13 @@ function ScribeContent() {
console.error('Failed to initialize database:', error);
}
}
setSession({
isConnected: true,
user: user,
accessToken: token,
});
setCurrentCredits(user.creditsBalance)
setAmountSpent(user.aiUsage)
} catch (e: unknown) {
if (window.electron) {
try {