import * as ACTION_SHEET from "../../actions/sheet_actions";
import { MenuItemRegistry } from "../menu_items_registry";

export function getSheetMenuRegistry(args: {
  renameSheetCallback: () => void;
  openSheetTabColorPickerCallback: () => void;
  openSheetBackgroundColorPickerCallback: () => void;
}): MenuItemRegistry {
  const sheetMenuRegistry = new MenuItemRegistry();

  sheetMenuRegistry
    .add("delete", {
      ...ACTION_SHEET.deleteSheet,
      sequence: 10,
    })
    .add("hide_sheet", {
      ...ACTION_SHEET.hideSheet,
      sequence: 20,
    })
    .add("duplicate", {
      ...ACTION_SHEET.duplicateSheet,
      sequence: 30,
      separator: true,
    })
    .add("rename", {
      ...ACTION_SHEET.renameSheet(args),
      sequence: 40,
    })
    .add("change_tab_color", {
      ...ACTION_SHEET.changeSheetTabColor(args),
      sequence: 50,
    })
    .add("change_sheet_background", {
      ...ACTION_SHEET.changeSheetBackgroundColor(args),
      sequence: 50,
      separator: true,
    })
    .add("protect_sheet", {
      ...ACTION_SHEET.lockSheet,
      sequence: 60,
    })
    .add("remove_sheet_protection", {
      ...ACTION_SHEET.unlockSheet,
      sequence: 70,
    })
    .add("move_right", {
      ...ACTION_SHEET.sheetMoveRight,
      sequence: 80,
    })
    .add("move_left", {
      ...ACTION_SHEET.sheetMoveLeft,
      sequence: 90,
    });

  return sheetMenuRegistry;
}
