fix(llc): don't return cid in case name is null, minor improvements

Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
Sahil Kumar
2021-08-11 15:00:05 +05:30
committed by xsahil03x
parent b3a1d42f92
commit 702f7ee937
2 changed files with 4 additions and 32 deletions
@@ -303,37 +303,17 @@ class Channel {
/// Shortcut to get channel name. /// Shortcut to get channel name.
/// ///
/// If no name is set this returns the channel cid, else null.
///
/// {@macro name} /// {@macro name}
String? get name { String? get name => extraData['name'] as String?;
if (extraData.containsKey('name')) {
final name = extraData['name']! as String;
if (name.isNotEmpty) return name;
}
return cid;
}
/// Channel [name] as a stream. /// Channel [name] as a stream.
/// ///
/// If no name is set the stream returns the channel cid.
///
/// The channel needs to be initialized. /// The channel needs to be initialized.
/// ///
/// {@macro name} /// {@macro name}
Stream<String> get nameStream { Stream<String?> get nameStream {
_checkInitialized(); _checkInitialized();
return state!.channelStateStream.map( return extraDataStream.map((it) => it['name'] as String?);
(cs) {
final extraData = cs.channel?.extraData;
if (extraData != null && extraData.containsKey('name')) {
final name = extraData['name']! as String;
if (name.isNotEmpty) return name;
}
// this can never be null once the channel is initialized
return name!;
},
);
} }
/// Shortcut to get channel image. /// Shortcut to get channel image.
@@ -348,9 +328,7 @@ class Channel {
/// {@macro image} /// {@macro image}
Stream<String?> get imageStream { Stream<String?> get imageStream {
_checkInitialized(); _checkInitialized();
return state!.channelStateStream.map( return extraDataStream.map((it) => it['image'] as String?);
(cs) => (cs.channel?.extraData['image'] as String?) ?? image,
);
} }
/// The main Stream chat client. /// The main Stream chat client.
@@ -39,7 +39,6 @@ void main() {
late final client = MockStreamChatClient(); late final client = MockStreamChatClient();
const channelId = 'test-channel-id'; const channelId = 'test-channel-id';
const channelType = 'test-channel-type'; const channelType = 'test-channel-type';
const channelCid = '$channelType:$channelId';
late Channel channel; late Channel channel;
setUpAll(() { setUpAll(() {
@@ -93,11 +92,6 @@ void main() {
test('should be able to get and set `name`', () { test('should be able to get and set `name`', () {
expect(channel.extraData.isEmpty, isTrue); expect(channel.extraData.isEmpty, isTrue);
expect(
channel.name,
channelCid,
reason: 'if name is not set then use channel id',
);
const name = 'Channel name'; const name = 'Channel name';
channel.name = name; channel.name = name;