Untitled
unknown
plain_text
a year ago
2.1 kB
10
Indexable
// src/store/fileManager.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { Client } from "ysftp-web-sdk";
interface FormValues {
ip: string;
port: number;
username: string;
password: string;
}
interface FileManagerState {
leftClient: Client | null;
rightClient: Client | null;
leftPageClientValue: FormValues;
rightPageClientValue: FormValues;
leftPagePath: string;
rightPagePath: string;
}
const initialState: FileManagerState = {
leftClient: null,
rightClient: null,
leftPageClientValue: {
ip: "",
port: 0,
username: "",
password: "",
},
rightPageClientValue: {
ip: "",
port: 0,
username: "",
password: "",
},
leftPagePath: "/",
rightPagePath: "/",
};
const fileManagerSlice = createSlice({
name: "fileManager",
initialState,
reducers: {
setleftClient: (
state: { leftClient: Client | null },
action: PayloadAction<Client | null>
) => {
state.leftClient = action.payload;
},
setrightClient: (
state: { leftClient: Client | null },
action: PayloadAction<Client | null>
) => {
state.leftClient = action.payload;
},
setLeftPageClientValue: (
state: { leftPageClientValue: FormValues },
action: PayloadAction<FormValues>
) => {
state.leftPageClientValue = action.payload;
},
setRightPageClientValue: (
state: { rightPageClientValue: FormValues },
action: PayloadAction<FormValues>
) => {
state.rightPageClientValue = action.payload;
},
setleftPagePath: (
state: { leftPagePath: string },
action: PayloadAction<string>
) => {
state.leftPagePath = action.payload;
},
setrightPagePath: (
state: { leftPagePath: string },
action: PayloadAction<string>
) => {
state.leftPagePath = action.payload;
},
},
});
export const { setLeftPageClientValue, setRightPageClientValue } =
fileManagerSlice.actions;
export default fileManagerSlice.reducer;
Editor is loading...
Leave a Comment