feat: group publishing by label - #72
Conversation
BIA3IA
commented
Sep 4, 2026
- Added PublishTagGroupsDialog to manage the visibility and untagging of groups with a specific tag.
- Created TagGroupsPage to display groups associated with a flat tag, allowing for search and management.
- Introduced useLabelGroupRows hook to streamline the retrieval of group rows based on labels.
- Enhanced CreateEditGroupDialog to include an option to hide groups until published.
- Updated CombinedGroupsTable to handle visibility toggling for WhatsApp groups.
- Implemented setWhatsappGroupVisibility function to manage group visibility state.
- Added UI elements for displaying visibility status and handling user interactions.
- Updated routing to include a dedicated page for managing tags.
- Added PublishTagGroupsDialog to manage the visibility and untagging of groups with a specific tag. - Created TagGroupsPage to display groups associated with a flat tag, allowing for search and management. - Introduced useLabelGroupRows hook to streamline the retrieval of group rows based on labels. - Enhanced CreateEditGroupDialog to include an option to hide groups until published. - Updated CombinedGroupsTable to handle visibility toggling for WhatsApp groups. - Implemented setWhatsappGroupVisibility function to manage group visibility state. - Added UI elements for displaying visibility status and handling user interactions. - Updated routing to include a dedicated page for managing tags.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟡 Changes recommended
The new tag route’s category redirect can generate invalid/unencoded URLs for labels containing spaces or other characters, which can break navigation.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR introduces a “publication” workflow built around reserved release- labels, adding a dedicated tag page to manage/publish those batches and extending group visibility controls (including WhatsApp) to support “hide until published” and later publishing.
Changes:
- Added
/dashboard/web/tags/$tagroute +TagGroupsPageto browse/manage groups for a flat tag (including release/publication tags). - Implemented publishing flow for release tags (unhide + untag in bulk) and refined label creation/rename validation to reserve
release-. - Added shared optimistic visibility-toggle hook and extended WhatsApp UI/server functions to support hide/visibility toggling and “hide until published” on creation.
File summaries
| File | Description |
|---|---|
| src/routeTree.gen.ts | Adds generated route entries for the new /dashboard/web/tags/$tag page. |
| src/routes/dashboard/web/tags/$tag.tsx | New tag route with redirect for categories and loader for tag page data. |
| src/hooks/use-group-visibility-toggle.ts | New shared optimistic visibility toggle hook (mutation + rollback + refresh). |
| src/features/whatsapp/whatsapp-groups-page.tsx | Adds WhatsApp visibility toggle UI and surfaces mutation/refresh errors. |
| src/features/whatsapp/whatsapp-group-fields.tsx | Adds optional “Hide until published” checkbox field for create flows. |
| src/features/whatsapp/groups.functions.ts | Adds hide support on create/edit and introduces setWhatsappGroupVisibility server fn. |
| src/features/whatsapp/create-edit-group-dialog.tsx | Adds “hide until published” option when creating a WhatsApp group. |
| src/features/telegram/groups-table.tsx | Refactors Telegram visibility toggle to use shared hook. |
| src/features/groups-by-label/use-label-group-rows.ts | New shared hook to derive combined rows for exact-label pages (category/tag). |
| src/features/groups-by-label/tag-groups-page.tsx | New flat-tag page UI (search + publish dialog + combined table). |
| src/features/groups-by-label/publish-tag-groups-dialog.tsx | New “publish release label” dialog (unhide + untag batch). |
| src/features/groups-by-label/groups-by-label-page.tsx | Refactors row derivation to useLabelGroupRows; passes allLabels onward. |
| src/features/groups-by-label/combined-groups-table.tsx | Adds WhatsApp visibility toggle and refactors Telegram toggle to shared hook. |
| src/features/groups-by-label/add-group-to-label-dialog.tsx | Adds multi-tag selection + optional creation flow gating + “hide on create”. |
| src/features/group-labels/rename-label-dialog.tsx | Prevents renaming publication labels / into the reserved release- prefix. |
| src/features/group-labels/label-tree.ts | Introduces RELEASE_LABEL_PREFIX, hasReleaseLabelPrefix, and isReleaseLabel. |
| src/features/group-labels/label-tree-selector.tsx | Splits “Attributes” vs “Publications” and supports tagsOnly mode. |
| src/features/group-labels/group-labels.validation.ts | Reserves release- from normal labels; adds createReleaseLabelInput; blocks renaming publications. |
| src/features/group-labels/group-labels.functions.ts | Adds createReleaseLabel server function. |
| src/features/group-labels/group-labels-page.tsx | Updates labels management UI to separate Attributes vs Publications; links to tag pages. |
| src/features/group-labels/group-label-card.tsx | Adds optional link target for label badge. |
| src/features/group-labels/add-tag-dialog.tsx | Adds publication creation mode (creates release labels from a name). |
| src/components/ui/checkbox.tsx | New shared Checkbox UI component used by “hide until published”. |
Review details
- Files reviewed: 23/23 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>