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

@@ -17,6 +17,7 @@ import {SyncedBook} from "@/lib/models/SyncedBook";
import OfflineContext, {OfflineContextType} from "@/context/OfflineContext";
import {SeriesSyncContext, SeriesSyncContextProps} from "@/context/SeriesSyncContext";
import {SyncedSeries, SyncedSeriesBook} from "@/lib/models/SyncedSeries";
import * as tauri from '@/lib/tauri';
interface AddNewSeriesFormProps {
setCloseForm: Dispatch<SetStateAction<boolean>>;
@@ -88,7 +89,7 @@ export default function AddNewSeriesForm({setCloseForm, onSeriesCreated}: AddNew
let response: string;
if (isCurrentlyOffline()) {
response = await window.electron.invoke<string>('db:series:create', createData);
response = await tauri.createSeries(createData);
} else {
response = await System.authPostToServer<string>(
'series/add',

View File

@@ -23,6 +23,7 @@ import OfflineContext, {OfflineContextType} from "@/context/OfflineContext";
import {SeriesSyncContext, SeriesSyncContextProps} from "@/context/SeriesSyncContext";
import {LocalSyncQueueContext, LocalSyncQueueContextProps} from "@/context/SyncQueueContext";
import {SyncedSeries} from "@/lib/models/SyncedSeries";
import * as tauri from '@/lib/tauri';
interface SeriesSettingOption {
id: string;
@@ -62,7 +63,7 @@ export default function SeriesSettingSidebar(
let success: boolean;
if (isCurrentlyOffline() || localSeries) {
success = await window.electron.invoke<boolean>('db:series:delete', deleteData);
success = await tauri.deleteSeries(deleteData.seriesId, deleteData.deletedAt);
} else {
success = await System.authDeleteToServer<boolean>(
'series/delete',
@@ -72,7 +73,7 @@ export default function SeriesSettingSidebar(
);
if (localSyncedSeries.find((s: SyncedSeries): boolean => s.id === seriesId)) {
addToQueue('db:series:delete', deleteData);
addToQueue('delete_series', {data: deleteData});
}
}

View File

@@ -16,6 +16,7 @@ import OfflineContext, {OfflineContextType} from "@/context/OfflineContext";
import {LocalSyncQueueContext, LocalSyncQueueContextProps} from "@/context/SyncQueueContext";
import {SeriesSyncContext, SeriesSyncContextProps} from "@/context/SeriesSyncContext";
import {SyncedSeries} from "@/lib/models/SyncedSeries";
import * as tauri from '@/lib/tauri';
function BasicSeriesInformation(props: object, ref: React.Ref<{ handleSave: () => Promise<void> }>) {
const t = useTranslations();
@@ -45,7 +46,7 @@ function BasicSeriesInformation(props: object, ref: React.Ref<{ handleSave: () =
let response: SeriesDetailResponse;
if (isCurrentlyOffline() || localSeries) {
response = await window.electron.invoke<SeriesDetailResponse>('db:series:detail', {seriesId});
response = await tauri.getSeriesDetail(seriesId);
} else {
response = await System.authGetQueryToServer<SeriesDetailResponse>(
'series/detail',
@@ -90,7 +91,7 @@ function BasicSeriesInformation(props: object, ref: React.Ref<{ handleSave: () =
let success: boolean;
if (isCurrentlyOffline() || localSeries) {
success = await window.electron.invoke<boolean>('db:series:update', updateData);
success = await tauri.updateSeries(updateData);
} else {
const response: SeriesUpdateResponse = await System.authPutToServer<SeriesUpdateResponse>(
'series/update',
@@ -101,7 +102,7 @@ function BasicSeriesInformation(props: object, ref: React.Ref<{ handleSave: () =
success = response.success;
if (localSyncedSeries.find((s: SyncedSeries): boolean => s.id === seriesId)) {
addToQueue('db:series:update', updateData);
addToQueue('update_series', {data: updateData});
}
}

View File

@@ -15,6 +15,7 @@ import OfflineContext, {OfflineContextType} from "@/context/OfflineContext";
import {LocalSyncQueueContext, LocalSyncQueueContextProps} from "@/context/SyncQueueContext";
import {SeriesSyncContext, SeriesSyncContextProps} from "@/context/SeriesSyncContext";
import {SyncedSeries, SyncedSeriesBook} from "@/lib/models/SyncedSeries";
import * as tauri from '@/lib/tauri';
function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Promise<void> }>) {
const t = useTranslations();
@@ -75,7 +76,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
let response: SeriesBookProps[];
if (isCurrentlyOffline() || localSeries) {
response = await window.electron.invoke<SeriesBookProps[]>('db:series:books', {seriesId});
response = await tauri.getSeriesBooks(seriesId);
} else {
response = await System.authGetQueryToServer<SeriesBookProps[]>(
'series/book/list',
@@ -123,7 +124,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
let response: boolean;
if (isCurrentlyOffline() || localSeries) {
response = await window.electron.invoke<boolean>('db:series:book:add', addData);
response = await tauri.addBookToSeries(addData.seriesId, addData.bookId);
} else {
response = await System.authPostToServer<boolean>(
'series/book/add',
@@ -133,7 +134,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
);
if (localSyncedSeries.find((s: SyncedSeries): boolean => s.id === seriesId)) {
addToQueue('db:series:book:add', addData);
addToQueue('add_book_to_series', {data: addData});
}
}
@@ -180,7 +181,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
let response: boolean;
if (isCurrentlyOffline() || localSeries) {
response = await window.electron.invoke<boolean>('db:series:book:remove', removeData);
response = await tauri.removeBookFromSeries(removeData.seriesId, removeData.bookId, removeData.deletedAt);
} else {
response = await System.authDeleteToServer<boolean>(
'series/book/remove',
@@ -190,7 +191,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
);
if (localSyncedSeries.find((s: SyncedSeries): boolean => s.id === seriesId)) {
addToQueue('db:series:book:remove', removeData);
addToQueue('remove_book_from_series', {data: removeData});
}
}
@@ -247,7 +248,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
let response: boolean;
if (isCurrentlyOffline() || localSeries) {
response = await window.electron.invoke<boolean>('db:series:book:reorder', reorderData);
response = await tauri.reorderSeriesBooks(reorderData.seriesId, reorderData.booksOrder);
} else {
response = await System.authPutToServer<boolean>(
'series/book/reorder',
@@ -257,7 +258,7 @@ function SeriesBooksManager(props: object, ref: React.Ref<{ handleSave: () => Pr
);
if (localSyncedSeries.find((s: SyncedSeries): boolean => s.id === seriesId)) {
addToQueue('db:series:book:reorder', reorderData);
addToQueue('reorder_series_books', {data: reorderData});
}
}