block / block/buzz

Mobile: forum channels never appear in the Home channel list (no Forums section)

Open
#4,726 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## Summary

Mobile renders forums fully, but forum channels are never listed on the Home channel list, so there is no way to discover or reach a forum from the main screen. Desktop has a dedicated "Forums" section; mobile has none.

## Where it comes from

`mobile/lib/features/channels/channels_page/body.dart` builds exactly two lists and drops everything else:

```dart
final visibleChannels = channels
.where((channel) => channel.isMember && !channel.isArchived)
.toList();
final streamChannels = visibleChannels
.where((channel) => channel.isStream) // → "Channels"
.toList();
final dmChannels = sortDmChannelsByDisplayLabel(
visibleChannels.where((channel) => channel.isDm), // → "DMs"
currentPubkey: currentPubkey,
);
```

There is no branch for `channel.isForum` (`channel.dart:77`). The current behaviour is locked in by `mobile/test/features/channels/channels_page_test.dart`:

```dart
expect(find.text('design-forum'), findsNothing); // a channelType: 'forum' channel
expect(find.text('FORUMS'), findsNothing);
```

Desktop, by contrast, renders a `Forums` group in `desktop/src/features/sidebar/ui/AppSidebar.tsx` (inside ``).

## Why this looks unintentional rather than by design

#356 (`feat(mobile): implement forum posts and threads`) replaced the "Forum threads are not on mobile yet" placeholder with the full forum experience — `ForumPostsView`, `ForumThreadPage`, create post (`kind:45001`), reply (`kind:45003`), delete. `channel_detail_page.dart:92,293` mounts that view for `channel.isForum`. `channels_provider.dart:20` even ranks forums in `_channelTypeOrder = {'stream': 0, 'forum': 1, 'dm': 2}`.

So the whole feature is present and reachable — everything except the entry point from the channel list. The behaviour is identical on `v0.4.26` and `v0.5.2`.

## Impact

For communities that use forums as a primary surface (structured/card-shaped content rather than chat), the mobile app effectively hides that half of the workspace. Users see their `stream` channels and DMs and reasonably conclude the forums did not sync.

## Current workaround

Search does surface them — `search_provider.dart:194` filters out only DMs — so typing the forum name in Search and tapping the result opens `ChannelDetailPage` → `ForumPostsView`. The Activity feed ("Forum post" / "Forum reply" items) and in-message channel links also work. None of these are discoverable as a browsing path.

## Suggested fix

Mirror the streams section: derive `forumChannels` from `visibleChannels.where((c) => c.isForum)` and render a "Forums" section between Channels and DMs, and update the two assertions in `channels_page_test.dart`.

Happy to send a PR if this is wanted — just wanted to confirm first whether the omission is deliberate (e.g. mobile scope decision) before touching a test that currently asserts the opposite.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.