ohmysearch
Version:
Ohmysearch - customizable all in one search tool to boost developer productivity
30 lines (28 loc) • 890 B
text/typescript
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]);
}