From e3efb1a3dd37750314f15d6be7db4f5f4d8fae29 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Thu, 21 Oct 2021 07:08:50 +1100 Subject: [PATCH] Improve types in menuConfig --- app/web/src/components/EditorMenu/menuConfig.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/web/src/components/EditorMenu/menuConfig.tsx b/app/web/src/components/EditorMenu/menuConfig.tsx index 9b252a3..0ccdfc8 100644 --- a/app/web/src/components/EditorMenu/menuConfig.tsx +++ b/app/web/src/components/EditorMenu/menuConfig.tsx @@ -4,6 +4,7 @@ import { makeStlDownloadHandler, PullTitleFromFirstLine } from './helpers' import { useSaveCode } from 'src/components/IdeWrapper/useSaveCode' import { DropdownItem } from './Dropdowns' import { useShortcutsModalContext } from './AllShortcutsModal' +import type { State } from 'src/helpers/hooks/useIdeState' export function cmdOrCtrl() { return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) ? '⌘' : 'Ctrl' @@ -94,11 +95,14 @@ const viewMenuConfig: EditorMenuConfig = { export const editorMenuConfig = [fileMenuConfig, editMenuConfig, viewMenuConfig] -export interface EditorMenuItemConfig { +interface EditorMenuItemConfigBase { label: string shortcut: string shortcutLabel: React.ReactElement | string - Component: (props: any) => React.ReactElement + callback?: (...a: any[]) => void +} +export interface EditorMenuItemConfig extends EditorMenuItemConfigBase { + Component: React.FC<{config: EditorMenuItemConfigBase, state: State, thunkDispatch: any}> } export interface EditorMenuConfig {