mirror of
https://github.com/block/buzz.git
synced 2026-10-27 04:30:52 +00:00
## Summary - combine channel identity, actions, member previews, and lifecycle controls in one navigable mobile details page - add compact member management and desktop-aligned channel editing - smooth the profile entrance transition and standardize settings-group spacing - align Huddle lifecycle rows with regular message author and body spacing ## Testing - `just mobile-check` - `just mobile-test` — 1,477 tests - Pixel 10 debug build, install, and interaction review ## Snapshots ### Channel header  ### Combined channel details  ### Manage channel  --------- Signed-off-by: kenny lopez <klopez4212@gmail.com> Signed-off-by: Fast Fizz <2df81cb51f05a9d5387ef24d7b9ecb8fcdfcd1c70ffabc67061c9596e1b5b1c4@buzz.block.builderlab.xyz> Co-authored-by: Fast Fizz <2df81cb51f05a9d5387ef24d7b9ecb8fcdfcd1c70ffabc67061c9596e1b5b1c4@buzz.block.builderlab.xyz>
20 lines
673 B
Dart
20 lines
673 B
Dart
/// Builds the kind:9002 tags used to update channel name and description.
|
|
List<List<String>> buildUpdateChannelTags({
|
|
required String channelId,
|
|
String? name,
|
|
String? description,
|
|
}) {
|
|
if (name == null && description == null) {
|
|
throw ArgumentError('At least one channel field must be provided');
|
|
}
|
|
final canonicalName = name?.trim().replaceFirst(RegExp(r'^#+'), '').trim();
|
|
if (canonicalName != null && canonicalName.isEmpty) {
|
|
throw ArgumentError.value(name, 'name', 'must not be empty');
|
|
}
|
|
return [
|
|
['h', channelId],
|
|
if (canonicalName != null) ['name', canonicalName],
|
|
if (description != null) ['about', description.trim()],
|
|
];
|
|
}
|