// store/slices/fileSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";

interface FileState {
  selectedFile: File | null;
  previewFile: string | null;
}

const initialState: FileState = {
  selectedFile: null,
  previewFile: null,
};

const fileSlice = createSlice({
  name: "file",
  initialState,
  reducers: {
    setFile(state, action: PayloadAction<File>) {
      state.selectedFile = action.payload;
      if (action.payload.type.startsWith("image/") || action.payload.type.startsWith("video/")) {
        state.previewFile = URL.createObjectURL(action.payload);
      } else {
        state.previewFile = action.payload.name;
      }
    },
    clearFile(state) {
      state.selectedFile = null;
      state.previewFile = null;
    },
  },
});

export const { setFile, clearFile } = fileSlice.actions;
export default fileSlice.reducer;
