import color from "picocolors";
import { projectTypes } from "./config.js";
import { gridSelect } from "../../grid.js";
import { createScaffoldUI, formatResults, waitKey } from "./service.js";

const run = async () => {
  while (true) {
    // 二级菜单 - 项目类型
    const typeResult = await gridSelect({
      items: projectTypes,
      title: "项目搭建器 - 选择类型",
      cols: Math.min(3, projectTypes.length),
      colWidth: 20,
      instructions: "←→ 选择 | Enter 确认 | Esc 返回",
      onCancel: "back",
      mapper: item => ({ action: "select", item }),
      showUpdateButton: false,
    });

    if (typeResult === "back") return "back";

    const projectType = typeResult.item.name;

    // 三级页面 - 框架+组件配置（合并）
    const ui = createScaffoldUI(projectType);
    const result = await ui.runInteractive();

    if (result) {
      const summary = formatResults(result.steps, result.results);
      ui.showSummary(summary);
      console.log(color.yellow("功能开发中，敬请期待..."));
      await waitKey();
    }
  }
};

export default {
  id: "scaffold",
  name: "项目搭建",
  desc: "快速创建项目模板",
  run,
};
