feat: get web worker mechanism working (pass file around)

This commit is contained in:
鲁树人
2023-05-08 17:36:10 +01:00
parent 29b169cce6
commit 911ee2a2fa
7 changed files with 150 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
import { createSlice } from '@reduxjs/toolkit';
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
import type { PayloadAction } from '@reduxjs/toolkit';
import type { RootState } from '../../store';
import { decryptionQueue } from '../../decrypt-worker/client';
export enum ProcessState {
UNTOUCHED = 'UNTOUCHED',
@@ -39,6 +40,15 @@ const initialState: FileListingState = {
displayMode: ListingMode.LIST,
};
export const processFile = createAsyncThunk('fileListing/processFile', async (fileId: string, thunkAPI) => {
const file = selectFiles(thunkAPI.getState() as RootState)[fileId];
if (!file) {
return thunkAPI.rejectWithValue('ERROR: File not found');
}
return decryptionQueue.add({ id: fileId, blobURI: file.raw });
});
export const fileListingSlice = createSlice({
name: 'fileListing',
initialState,