Migrate from window.electron to tauri IPC functions across components
- Replaced `window.electron.invoke` calls with equivalent `tauri` function calls for all IPC interactions. - Removed `electron.d.ts` TypeScript definitions as they are no longer needed. - Updated related logic for offline/online state synchronization. - Added `types.rs` and `shared/mod.rs` modules to support Tauri IPC integration with Rust enums and shared logic. - Refactored IPC request queues to use updated handler names for consistency with Tauri.
This commit is contained in:
@@ -15,6 +15,7 @@ import OfflineContext, {OfflineContextType} from "@/context/OfflineContext";
|
||||
import {LocalSyncQueueContext, LocalSyncQueueContextProps} from "@/context/SyncQueueContext";
|
||||
import {BooksSyncContext, BooksSyncContextProps} from "@/context/BooksSyncContext";
|
||||
import {SyncedBook} from "@/lib/models/SyncedBook";
|
||||
import * as tauri from '@/lib/tauri';
|
||||
|
||||
export default function ScribeChapterComponent() {
|
||||
const t = useTranslations();
|
||||
@@ -79,14 +80,10 @@ export default function ScribeChapterComponent() {
|
||||
async function getChapterList(): Promise<void> {
|
||||
try {
|
||||
let response: ChapterListProps[]|null;
|
||||
if (isCurrentlyOffline()){
|
||||
response = await window.electron.invoke<ChapterListProps[]>('db:book:chapters', book?.bookId)
|
||||
if (isCurrentlyOffline() || book?.localBook){
|
||||
response = await tauri.getChapters(book?.bookId ?? '') as ChapterListProps[];
|
||||
} else {
|
||||
if (book?.localBook){
|
||||
response = await window.electron.invoke<ChapterListProps[]>('db:book:chapters', book?.bookId)
|
||||
} else {
|
||||
response = await System.authGetQueryToServer<ChapterListProps[]>(`book/chapters?id=${book?.bookId}`, userToken, lang);
|
||||
}
|
||||
response = await System.authGetQueryToServer<ChapterListProps[]>(`book/chapters?id=${book?.bookId}`, userToken, lang);
|
||||
}
|
||||
if (response) {
|
||||
setChapters(response);
|
||||
@@ -104,26 +101,14 @@ export default function ScribeChapterComponent() {
|
||||
const version: number = chapter?.chapterContent.version ? chapter?.chapterContent.version : 2;
|
||||
try {
|
||||
let response: ChapterProps | null
|
||||
if (isCurrentlyOffline()) {
|
||||
response = await window.electron.invoke<ChapterProps>('db:chapter:whole', {
|
||||
if (isCurrentlyOffline() || book?.localBook) {
|
||||
response = await tauri.getWholeChapter(chapterId, version, book?.bookId ?? '');
|
||||
} else {
|
||||
response = await System.authGetQueryToServer<ChapterProps>(`chapter/whole`, userToken, lang, {
|
||||
bookid: book?.bookId,
|
||||
id: chapterId,
|
||||
version: version,
|
||||
})
|
||||
} else {
|
||||
if (book?.localBook){
|
||||
response = await window.electron.invoke<ChapterProps>('db:chapter:whole', {
|
||||
bookid: book?.bookId,
|
||||
id: chapterId,
|
||||
version: version,
|
||||
})
|
||||
} else {
|
||||
response = await System.authGetQueryToServer<ChapterProps>(`chapter/whole`, userToken, lang, {
|
||||
bookid: book?.bookId,
|
||||
id: chapterId,
|
||||
version: version,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!response) {
|
||||
errorMessage(t("scribeChapterComponent.errorFetchChapter"));
|
||||
@@ -148,12 +133,12 @@ export default function ScribeChapterComponent() {
|
||||
title: title,
|
||||
};
|
||||
if (isCurrentlyOffline() || book?.localBook) {
|
||||
response = await window.electron.invoke<boolean>('db:chapter:update', updateData);
|
||||
response = await tauri.updateChapter(updateData.chapterId, updateData.title, updateData.chapterOrder);
|
||||
} else {
|
||||
response = await System.authPostToServer<boolean>('chapter/update', updateData, userToken, lang);
|
||||
|
||||
if (localSyncedBooks.find((syncedBook: SyncedBook): boolean => syncedBook.id === book?.bookId)) {
|
||||
addToQueue('db:chapter:update', updateData);
|
||||
addToQueue('update_chapter', {data: updateData});
|
||||
}
|
||||
}
|
||||
if (!response) {
|
||||
@@ -190,11 +175,7 @@ export default function ScribeChapterComponent() {
|
||||
let response:boolean = false;
|
||||
const deletedAt: number = System.timeStampInSeconds();
|
||||
if (isCurrentlyOffline() || book?.localBook) {
|
||||
response = await window.electron.invoke<boolean>('db:chapter:remove', {
|
||||
chapterId: removeChapterId,
|
||||
bookId: book?.bookId,
|
||||
deletedAt,
|
||||
});
|
||||
response = await tauri.removeChapter(removeChapterId, book?.bookId ?? '', deletedAt);
|
||||
} else {
|
||||
response = await System.authDeleteToServer<boolean>('chapter/remove', {
|
||||
chapterId: removeChapterId,
|
||||
@@ -203,11 +184,7 @@ export default function ScribeChapterComponent() {
|
||||
}, userToken, lang);
|
||||
|
||||
if (localSyncedBooks.find((syncedBook: SyncedBook): boolean => syncedBook.id === book?.bookId)) {
|
||||
addToQueue('db:chapter:remove', {
|
||||
chapterId: removeChapterId,
|
||||
bookId: book?.bookId,
|
||||
deletedAt,
|
||||
});
|
||||
addToQueue('remove_chapter', {data: {chapterId: removeChapterId, bookId: book?.bookId, deletedAt}});
|
||||
}
|
||||
}
|
||||
if (!response) {
|
||||
@@ -241,15 +218,16 @@ export default function ScribeChapterComponent() {
|
||||
title: chapterTitle
|
||||
};
|
||||
if (isCurrentlyOffline() || book?.localBook){
|
||||
chapterId = await window.electron.invoke<string>('db:chapter:add', addData);
|
||||
chapterId = await tauri.addChapter({
|
||||
bookId: addData.bookId ?? '',
|
||||
title: addData.title,
|
||||
chapterOrder: addData.chapterOrder,
|
||||
});
|
||||
} else {
|
||||
chapterId = await System.authPostToServer<string>('chapter/add', addData, userToken, lang);
|
||||
|
||||
if (localSyncedBooks.find((syncedBook: SyncedBook): boolean => syncedBook.id === book?.bookId)) {
|
||||
addToQueue('db:chapter:add', {
|
||||
...addData,
|
||||
chapterId,
|
||||
});
|
||||
addToQueue('add_chapter', {data: {...addData, chapterId}});
|
||||
}
|
||||
}
|
||||
if (!chapterId) {
|
||||
|
||||
Reference in New Issue
Block a user