Repository keeps one live Timeline per room and re-yields on its onUpdate callback (fires for both live events AND requestHistory), not just onSync which never fires for pagination. loadMoreMessages now paginates that same instance; added canLoadMore. Timeline widget requests older history when scrolled within 400px of the oldest end, guarded against re-entry, with a top loading spinner. Verified: widget test drives a drag-to-top and asserts loadMoreMessages fires; live smoke test confirms the onUpdate delivery path (reused by history) still shows new messages after the refactor. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
19 lines
670 B
Dart
19 lines
670 B
Dart
// Version: 2.1.0 | Created: 2026-04-01 | Updated: 2026-07-03
|
|
// App-wide constants. Change matrixBaseUrl for different environments.
|
|
|
|
abstract final class AppConfig {
|
|
static const String matrixBaseUrl = 'https://matrix.m8chat.au';
|
|
static const String matrixServerName = 'matrix.m8chat.au';
|
|
static const String livekitJwtUrl =
|
|
'https://matrix.m8chat.au/_matrix/livekit/jwt';
|
|
static const List<String> turnUrls = [
|
|
'turn:matrix.m8chat.au:3478',
|
|
'turns:matrix.m8chat.au:5349',
|
|
];
|
|
static const String appName = 'M8Chat';
|
|
static const String appVersion = '1.11.0';
|
|
|
|
// Jitsi conferencing
|
|
static const String jitsiDomain = 'conf.m8chat.au';
|
|
}
|