Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/flutter_chat_core/lib/flutter_chat_core.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export 'src/chat_controller/in_memory_chat_controller.dart';
export 'src/chat_controller/scroll_to_message_mixin.dart';
export 'src/chat_controller/upload_progress_mixin.dart';
export 'src/models/builders.dart';
export 'src/models/link_preview.dart';
export 'src/models/link_preview_data.dart';
export 'src/models/message.dart';
export 'src/models/message_group_status.dart';
export 'src/models/user.dart';
Expand Down
6 changes: 6 additions & 0 deletions packages/flutter_chat_core/lib/src/models/builders.dart
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ typedef LoadMoreBuilder = Widget Function(BuildContext);
/// Signature for building the empty chat list widget.
typedef EmptyChatListBuilder = Widget Function(BuildContext);

/// Signature for building the link preview widget.
typedef LinkPreviewBuilder = Widget? Function(BuildContext, TextMessage);

/// A collection of builder functions used to customize the UI components
/// of the chat interface.
@Freezed(fromJson: false, toJson: false)
Expand Down Expand Up @@ -128,6 +131,9 @@ abstract class Builders with _$Builders {

/// Custom builder for the empty chat list.
EmptyChatListBuilder? emptyChatListBuilder,

/// Custom builder for the link preview widget.
LinkPreviewBuilder? linkPreviewBuilder,
}) = _Builders;

const Builders._();
Expand Down
33 changes: 19 additions & 14 deletions packages/flutter_chat_core/lib/src/models/builders.freezed.dart

Large diffs are not rendered by default.

29 changes: 0 additions & 29 deletions packages/flutter_chat_core/lib/src/models/link_preview.dart

This file was deleted.

165 changes: 0 additions & 165 deletions packages/flutter_chat_core/lib/src/models/link_preview.freezed.dart

This file was deleted.

22 changes: 0 additions & 22 deletions packages/flutter_chat_core/lib/src/models/link_preview.g.dart

This file was deleted.

54 changes: 54 additions & 0 deletions packages/flutter_chat_core/lib/src/models/link_preview_data.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import 'package:freezed_annotation/freezed_annotation.dart';

part 'link_preview_data.freezed.dart';
part 'link_preview_data.g.dart';

/// Represents the data extracted for a link preview.
@freezed
abstract class LinkPreviewData with _$LinkPreviewData {
/// Creates a [LinkPreviewData] instance.
const factory LinkPreviewData({
/// The original URL link.
required String link,

/// A description extracted from the link source.
String? description,

/// The preview data of an image extracted from the link
ImagePreviewData? image,

/// The title extracted from the link source.
String? title,

}) = _LinkPreviewData;

const LinkPreviewData._();

/// Creates a [LinkPreviewData] instance from a JSON map.
factory LinkPreviewData.fromJson(Map<String, dynamic> json) =>
_$LinkPreviewDataFromJson(json);
}

/// Represents the data extracted for a link preview image.
@freezed
abstract class ImagePreviewData with _$ImagePreviewData {
/// Creates a [ImagePreviewData] instance.
const factory ImagePreviewData({

/// The URL of an image associated with the link.
required String url,

/// The image width.
required double width,

/// The image height.
required double height,

}) = _ImagePreviewData;

const ImagePreviewData._();

/// Creates a [ImagePreviewData] instance from a JSON map.
factory ImagePreviewData.fromJson(Map<String, dynamic> json) =>
_$ImagePreviewDataFromJson(json);
}
Loading