import React from "react";
import { OMSExtension } from "../types/OMSExtension";

// @ts-ignore
const extensionGroups = import.meta.globEager("./**/extension.ts");
// @ts-ignore
const extensionViews = import.meta.globEager("./**/view.tsx");
import SearchMdnView from "./search-mdn-web-docs/view";
import ReadHackerNewsView from './read-hacker-news/view';
import { createSnippetId, searchSnippetId } from "./snippets/extension";
import CreateSnippetView from "./snippets/create-snippet-view";
import SearchSnippetView from "./snippets/search-snippet-view";

const requireAllPlugins = function () {
  const processedExtensions: OMSExtension[] = [];
  for (const [groupExtensionId, groupModule] of Object.entries(extensionGroups)) {
    const partIds = groupExtensionId.split("/");
    console.log('parts', partIds);
    const extensionGroup = extensionGroups[groupExtensionId].default as OMSExtension[];
    for (const extension of extensionGroup) {
      console.info("[extension] Processing extention", groupExtensionId, extension);
      processedExtensions.push({
        ...extension,
      });
    }
  }
  console.info("Processed extention", processedExtensions);
  return processedExtensions;
};
const allPlugins = requireAllPlugins();

export const extensionView: { [id: string]: JSX.Element } = {
  "search-mdn-web-docs": <SearchMdnView />,
  "read-hacker-news-front-page": <ReadHackerNewsView />,
  "read-show-hacker-news": <ReadHackerNewsView />,
  [createSnippetId]: <CreateSnippetView />,
  [searchSnippetId]: <SearchSnippetView />,
};

export default allPlugins;
