import { FC } from 'react'
import {
  AppController,
  EditorRendererControllerType,
  EditorStateType,
  Element,
} from '../editorRendererController'
import { NavigateFunction } from 'react-router-dom'
import { ExtendedTheme } from '../theme/muiTheme'

export type CommonComponentPropertys = {
  appController: AppController
  id: string
  isProduction: boolean
  editorStateUi: EditorStateType['ui']
  assets: EditorStateType['assets']
  icons: Record<string, string>
}

export type NavContainerComponentPropertys = CommonComponentPropertys & {
  editorState: EditorStateType
  currentViewportElements: EditorRendererControllerType['currentViewportElements']
  ELEMENT_MODELS: EditorRendererControllerType['ELEMENT_MODELS']
  OverlayComponent?: FC<{ element: Element }>
  isPointerProduction: boolean
  icons: Record<string, string>
  navigate: NavigateFunction
  rootCompositeElementId?: string
  onSelectElement: (element: Element, isHovering: boolean) => void
  disableOverlay?: boolean
  baseComponentId?: string
  uiActions?: unknown
  items: { value: string; childId: string }[]
  navigationElementId: string
  parentId: string
  theme: ExtendedTheme
  allElements: Element[]
}
