fluffychat/lib/pangea/toolbar/token_rendering_mixin.dart
ggurdin 43080978de
simplify message token renderer (#4994)
* simplify message token renderer

* token rendering and new word collection for tokens in activity summary / menu

* make tokens hoverable
2025-12-30 16:56:47 -05:00

40 lines
1.3 KiB
Dart

import 'package:fluffychat/pangea/analytics_data/analytics_data_service.dart';
import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
import 'package:fluffychat/pangea/analytics_misc/construct_use_type_enum.dart';
import 'package:fluffychat/pangea/analytics_misc/constructs_model.dart';
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
import 'package:fluffychat/pangea/toolbar/reading_assistance/tokens_util.dart';
mixin TokenRenderingMixin {
Future<void> collectNewToken(
String cacheKey,
String targetId,
PangeaToken token,
AnalyticsDataService analyticsService, {
String? roomId,
String? eventId,
}) async {
TokensUtil.collectToken(cacheKey, token.text);
final constructs = [
OneConstructUse(
useType: ConstructUseTypeEnum.click,
lemma: token.lemma.text,
constructType: ConstructTypeEnum.vocab,
metadata: ConstructUseMetaData(
roomId: roomId,
timeStamp: DateTime.now(),
eventId: eventId,
),
category: token.pos,
form: token.text.content,
xp: ConstructUseTypeEnum.click.pointValue,
),
];
await analyticsService.updateService.addAnalytics(
targetId,
constructs,
);
TokensUtil.clearNewTokenCache();
}
}