import { A1OFileType, A1TableType } from "@/types";

// 初始化状态
const initState = {
  // 列表数据
  tableInfo: {
    list: [] as A1TableType[],
    total: 0 as number,
  },

  // 项目 文件 -左侧写死列表
  A1OleftArr: [] as A1OFileType[],

  // 项目文件的表格数据
  A1OtableInfo: {
    list: [] as A1OFileType[],
    total: 0 as number,
  },
};

// 定义 action 类型
type Props =
  | { type: "A1/getList"; payload: { list: A1TableType[]; total: number } }
  | { type: "A1/outLeftArr"; payload: A1OFileType[] }
  | { type: "A1/outTableArr"; payload: { list: A1OFileType[]; total: number } };

// 频道 reducer
export default function A1Reducer(state = initState, action: Props) {
  switch (action.type) {
    // 获取列表数据
    case "A1/getList":
      return { ...state, tableInfo: action.payload };
    // 项目 文件 -左侧写死列表
    case "A1/outLeftArr":
      return { ...state, A1OleftArr: action.payload };
    // 项目 文件 -分页列表
    case "A1/outTableArr":
      return { ...state, A1OtableInfo: action.payload };
    default:
      return state;
  }
}
