ide-page.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { Alerts } from '@/features/ide-react/components/alerts/alerts'
  2. import { useLayoutEventTracking } from '@/features/ide-react/hooks/use-layout-event-tracking'
  3. import useSocketListeners from '@/features/ide-react/hooks/use-socket-listeners'
  4. import { useEditingSessionHeartbeat } from '@/features/ide-react/hooks/use-editing-session-heartbeat'
  5. import { useRegisterUserActivity } from '@/features/ide-react/hooks/use-register-user-activity'
  6. import { useHasLintingError } from '@/features/ide-react/hooks/use-has-linting-error'
  7. import { Modals } from '@/features/ide-react/components/modals/modals'
  8. import { GlobalAlertsProvider } from '@/features/ide-react/context/global-alerts-context'
  9. import { GlobalToasts } from '../global-toasts'
  10. import EditorSurvey from '../editor-survey'
  11. import { useFeatureFlag } from '@/shared/context/split-test-context'
  12. import { useStatusFavicon } from '@/features/ide-react/hooks/use-status-favicon'
  13. import useThemedPage from '@/shared/hooks/use-themed-page'
  14. import MainLayout from '@/features/ide-react/components/layout/main-layout'
  15. import SettingsModalNew from '@/features/ide-redesign/components/settings/settings-modal'
  16. export default function IdePage() {
  17. useLayoutEventTracking() // sent event when the layout changes
  18. useSocketListeners() // listen for project-related websocket messages
  19. useEditingSessionHeartbeat() // send a batched event when user is active
  20. useRegisterUserActivity() // record activity and ensure connection when user is active
  21. useHasLintingError() // pass editor:lint hasLintingError to the compiler
  22. useStatusFavicon() // update the favicon based on the compile status
  23. useThemedPage() // set the page theme based on user settings
  24. const editorSurveyFlag = useFeatureFlag('editor-popup-ux-survey')
  25. const showEditorSurvey = editorSurveyFlag
  26. return (
  27. <GlobalAlertsProvider>
  28. <Alerts />
  29. <Modals />
  30. <SettingsModalNew />
  31. <MainLayout />
  32. <GlobalToasts />
  33. {showEditorSurvey && <EditorSurvey />}
  34. </GlobalAlertsProvider>
  35. )
  36. }