ide-page.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031
  1. import { Alerts } from '@/features/ide-react/components/alerts/alerts'
  2. import { MainLayout } from '@/features/ide-react/components/layout/main-layout'
  3. import EditorLeftMenu from '@/features/editor-left-menu/components/editor-left-menu'
  4. import { useLayoutEventTracking } from '@/features/ide-react/hooks/use-layout-event-tracking'
  5. import useSocketListeners from '@/features/ide-react/hooks/use-socket-listeners'
  6. import { useOpenFile } from '@/features/ide-react/hooks/use-open-file'
  7. import { useEditingSessionHeartbeat } from '@/features/ide-react/hooks/use-editing-session-heartbeat'
  8. import { useRegisterUserActivity } from '@/features/ide-react/hooks/use-register-user-activity'
  9. import { useHasLintingError } from '@/features/ide-react/hooks/use-has-linting-error'
  10. import { Modals } from '@/features/ide-react/components/modals/modals'
  11. import { GlobalAlertsProvider } from '@/features/ide-react/context/global-alerts-context'
  12. import { GlobalToasts } from '../global-toasts'
  13. export default function IdePage() {
  14. useLayoutEventTracking() // sent event when the layout changes
  15. useSocketListeners() // listen for project-related websocket messages
  16. useEditingSessionHeartbeat() // send a batched event when user is active
  17. useRegisterUserActivity() // record activity and ensure connection when user is active
  18. useHasLintingError() // pass editor:lint hasLintingError to the compiler
  19. useOpenFile() // create ide.binaryFilesManager (TODO: move to the history file restore component)
  20. return (
  21. <GlobalAlertsProvider>
  22. <Alerts />
  23. <Modals />
  24. <EditorLeftMenu />
  25. <MainLayout />
  26. <GlobalToasts />
  27. </GlobalAlertsProvider>
  28. )
  29. }