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:
natreex
2026-03-21 09:34:13 -04:00
parent 1a15692e40
commit ee4438834c
144 changed files with 21258 additions and 876 deletions

View File

@@ -13,6 +13,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';
interface IssuesProps {
issues: Issue[];
@@ -42,10 +43,7 @@ export default function Issues({issues, setIssues}: IssuesProps) {
try {
let issueId: string;
if (isCurrentlyOffline() || book?.localBook) {
issueId = await window.electron.invoke<string>('db:book:issue:add', {
bookId,
name: newIssueName,
});
issueId = await tauri.addIssue(bookId!, newIssueName);
} else {
issueId = await System.authPostToServer<string>('book/issue/add', {
bookId,
@@ -53,11 +51,11 @@ export default function Issues({issues, setIssues}: IssuesProps) {
}, token, lang);
if (localSyncedBooks.find((syncedBook: SyncedBook): boolean => syncedBook.id === bookId)) {
addToQueue('db:book:issue:add', {
addToQueue('add_issue', {data: {
bookId,
issueId,
name: newIssueName,
});
}});
}
}
if (!issueId) {
@@ -90,11 +88,7 @@ export default function Issues({issues, setIssues}: IssuesProps) {
let response: boolean;
const deletedAt: number = System.timeStampInSeconds();
if (isCurrentlyOffline() || book?.localBook) {
response = await window.electron.invoke<boolean>('db:book:issue:remove', {
bookId,
issueId,
deletedAt,
});
response = await tauri.removeIssue(bookId!, issueId, deletedAt);
} else {
response = await System.authDeleteToServer<boolean>(
'book/issue/remove',
@@ -108,11 +102,11 @@ export default function Issues({issues, setIssues}: IssuesProps) {
);
if (localSyncedBooks.find((syncedBook: SyncedBook): boolean => syncedBook.id === bookId)) {
addToQueue('db:book:issue:remove', {
addToQueue('remove_issue', {data: {
bookId,
issueId,
deletedAt,
});
}});
}
}
if (response) {