/**
 * createModuleRouteLoader - 创建路由模块加载器函数
 * 简化路由定义的辅助函数，自动从模块 exports.routes 中提取组件
 * 用于 React Navigation 的 getComponent API
 */

import React from 'react';
import { createModuleLoader } from './createModuleLoader';

/**
 * 创建路由模块加载器函数
 * @param moduleId 模块 ID
 * @param routeKey 路由 key（对应模块 exports.routes[routeKey]）
 * @returns 返回一个函数，该函数返回 React 组件（用于 getComponent）
 */
export function createModuleRouteLoader(
  moduleId: string,
  routeKey: string
): () => React.ComponentType<any> {
  return createModuleLoader(
    moduleId,
    (exports: any) => {
      if (!exports || !exports.routes || !exports.routes[routeKey]) {
        throw new Error(
          `Route "${routeKey}" not found in module "${moduleId}"`
        );
      }
      return exports.routes[routeKey];
    }
  );
}
