import React, { useCallback } from "react";
import { OMSExtension } from "../../common/types/OMSExtension";
import { useStore } from "../stores/global-stores";
import { sendIpcMessage } from "./ipcEvent";

export default function useCallbackOnSuggestionSelect(suggestion: OMSExtension) {
  const [pushRoute,] = useStore(
    (states) => [
      states.pushRoute,
    ]
  );
  return useCallback(() => {
    if (suggestion.type === "url") {
      sendIpcMessage("open-url", {
        url: suggestion.url,
      });
    } else if (suggestion.type === "view") {
      pushRoute(suggestion.id);
      document.getElementById('oms-input')?.focus();
      // setView((suggestion.view as any).default());
    } else if (suggestion.type === "no-op") {
      // nothing
    } else {
      if (suggestion.backgroundAction) {
        suggestion.backgroundAction();
      }
    }
  }, [suggestion]);
}
