31 lines
864 B
JavaScript
31 lines
864 B
JavaScript
// @flow
|
|
import { useRegisterActions } from "kbar";
|
|
import { flattenDeep } from "lodash";
|
|
import { useTranslation } from "react-i18next";
|
|
import { useLocation } from "react-router-dom";
|
|
import { actionToKBar } from "actions";
|
|
import useStores from "hooks/useStores";
|
|
import type { Action } from "types";
|
|
|
|
export default function useCommandBarActions(actions: Action[]) {
|
|
const stores = useStores();
|
|
const { t } = useTranslation();
|
|
const location = useLocation();
|
|
|
|
const context = {
|
|
t,
|
|
isCommandBar: true,
|
|
isContextMenu: false,
|
|
activeCollectionId: stores.ui.activeCollectionId,
|
|
activeDocumentId: stores.ui.activeDocumentId,
|
|
location,
|
|
stores,
|
|
};
|
|
|
|
const registerable = flattenDeep(
|
|
actions.map((action) => actionToKBar(action, context))
|
|
);
|
|
|
|
useRegisterActions(registerable, [registerable.length, location.pathname]);
|
|
}
|