import { ApplicationConfig, ErrorHandler, provideBrowserGlobalErrorListeners, provideZoneChangeDetection, } from '@angular/core'; import { provideHttpClient } from '@angular/common/http'; import { provideRouter, withInMemoryScrolling } from '@angular/router'; import { provideMarkdown } from 'ngx-markdown'; import { provideFmodeApi } from './core/api/api.provider'; import { AppErrorHandler } from './core/app-error-handler'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [ provideBrowserGlobalErrorListeners(), /* * 全局错误处理:只静音「预期内的请求取消」(Matrix SDK 的 AbortError), * 其余错误照常打印。见 `core/app-error-handler.ts`。 */ { provide: ErrorHandler, useClass: AppErrorHandler }, provideZoneChangeDetection({ eventCoalescing: true }), provideRouter( routes, // 滚动行为:前进回顶部,后退/前进保留位置。 // 移动端「列表 ↔ 详情」返回保持位置由页面自身配合(AC-05.2)。 withInMemoryScrolling({ scrollPositionRestoration: 'enabled', anchorScrolling: 'disabled' }), ), // 🔴 数据源单开关:MockApi(演示) / ParseApi(真实) provideFmodeApi(), // markdown 渲染(消息正文 / 附件预览)—— ngx-markdown 需要 HttpClient provideHttpClient(), provideMarkdown(), ], };