commits
Remove unused margin and adjust padding/positioning in ChatBox. Update
Chat component background color to use theme and adjust ChevronDown
margin.
- Adjust emoji suggestion trigger to require at least 3 characters.
- Implement a `pointerEvents="box-none"` overlay for the emoji selector
to prevent accidental clicks on underlying elements.
- Refactor the "Scroll to bottom" button in the chat component to use
styled atoms for better maintainability and a cleaner look.
- Wrap emoji and mention suggestion lists in `ScrollView` components to
enable scrolling when the lists exceed the maximum height.
feat: add scroll to bottom button in chat
config: allow RTMPS addon and regular at the same time
multistreaming: add RTMP push
feat: hide login if logged in
feat: branding system
Delegated moderation lexicons
feat(frontend): Implement delegated moderation UI
- Add width="min" to dialog buttons for proper layout
- Replace text checkmark with Check icon from lucide-react-native
- Fix typo: mb[4] → my[4] in moderator panel
- Simplify DID resolution logic with cleaner nested structure
- Change livestream update to CREATE for chapter marker pattern
Addresses feedback from PR #796
Enable delegated moderators with livestream.manage permission to update
stream titles via mod view.
- Add useUpdateLivestreamRecord hook with owner/delegated paths
- Implement update stream title dialog in mod view
- Add livestream management permission checks
- Export block module from streamplace-store
Note: block.tsx now contains multiple moderation actions.
Related to #718
Update frontend state management to handle multiple separate delegation
records per moderator, matching backend bug fix.
- Merge permissions from all delegation records in useCanModerate
- Fix WebSocket record matching using rkey + createdAt
- Skip expired delegations during permission merge
Related to #718
- Add "Moderations" tab to Stream Settings panel
- Embed ModeratorPanel as sub-panel for cleaner UI
- Accessible via button selector alongside Create and Metadata
- Update block and hide hooks to support delegated moderation
* Pass streamerDID to moderation actions
* Use XRPC endpoints when caller is not the streamer
* Direct ATProto writes when caller is the streamer
- Update ModView to use useCanModerate hook
* Replace useIsMyStream with permission-based checks
* Show moderation actions based on canHide/canBan permissions
* Support both streamer and delegated moderators
- Cleanup: Remove unused moderationSvcDid parameter
- Add moderationPermissions to livestream state
* Stores moderation permission records from streamer's repo
* Updated in real-time via WebSocket
- Handle moderation permission records in WebSocket consumer
* Add/update permissions when records are created
* Clear and refetch when records are deleted
* Enables real-time permission updates without page refresh
- Add ModeratorPanel component for managing moderators
* List of moderators with permissions and expiration
* Add moderator dialog with permission selection
* Remove moderator with confirmation
* Resolves DIDs to handles for display
* Supports embedded mode for use in other panels
- Add useCanModerate hook to check moderation permissions
* Reads from livestream store (updated via WebSocket)
* Supports owner and delegated moderator permissions
* Handles permission expiration
- Add moderator management hooks
* useListModerators - list all moderators for current user
* useAddModerator - add new moderator with permissions
* useRemoveModerator - remove moderator by rkey
* Resolves handles to DIDs automatically
* test(moderation): Add comprehensive permission validation tests
Add unit and integration tests for delegated moderation:
- Permission checker tests with multiple delegation records
- Expiration handling tests
- RPC endpoint permission enforcement tests
- Firehose integration tests
Tests verify the multi-record permission merging fix.
Related to #718
* some fixes
* remove duplicate
---------
Co-authored-by: makeworld <makeworld@protonmail.com>
fix: check polyfills again
Remove unused margin and adjust padding/positioning in ChatBox. Update
Chat component background color to use theme and adjust ChevronDown
margin.
- Adjust emoji suggestion trigger to require at least 3 characters.
- Implement a `pointerEvents="box-none"` overlay for the emoji selector
to prevent accidental clicks on underlying elements.
- Refactor the "Scroll to bottom" button in the chat component to use
styled atoms for better maintainability and a cleaner look.
- Wrap emoji and mention suggestion lists in `ScrollView` components to
enable scrolling when the lists exceed the maximum height.
feat(frontend): Implement delegated moderation UI
- Add width="min" to dialog buttons for proper layout
- Replace text checkmark with Check icon from lucide-react-native
- Fix typo: mb[4] → my[4] in moderator panel
- Simplify DID resolution logic with cleaner nested structure
- Change livestream update to CREATE for chapter marker pattern
Addresses feedback from PR #796
Enable delegated moderators with livestream.manage permission to update
stream titles via mod view.
- Add useUpdateLivestreamRecord hook with owner/delegated paths
- Implement update stream title dialog in mod view
- Add livestream management permission checks
- Export block module from streamplace-store
Note: block.tsx now contains multiple moderation actions.
Related to #718
Update frontend state management to handle multiple separate delegation
records per moderator, matching backend bug fix.
- Merge permissions from all delegation records in useCanModerate
- Fix WebSocket record matching using rkey + createdAt
- Skip expired delegations during permission merge
Related to #718
- Update block and hide hooks to support delegated moderation
* Pass streamerDID to moderation actions
* Use XRPC endpoints when caller is not the streamer
* Direct ATProto writes when caller is the streamer
- Update ModView to use useCanModerate hook
* Replace useIsMyStream with permission-based checks
* Show moderation actions based on canHide/canBan permissions
* Support both streamer and delegated moderators
- Cleanup: Remove unused moderationSvcDid parameter
- Add moderationPermissions to livestream state
* Stores moderation permission records from streamer's repo
* Updated in real-time via WebSocket
- Handle moderation permission records in WebSocket consumer
* Add/update permissions when records are created
* Clear and refetch when records are deleted
* Enables real-time permission updates without page refresh
- Add useCanModerate hook to check moderation permissions
* Reads from livestream store (updated via WebSocket)
* Supports owner and delegated moderator permissions
* Handles permission expiration
- Add moderator management hooks
* useListModerators - list all moderators for current user
* useAddModerator - add new moderator with permissions
* useRemoveModerator - remove moderator by rkey
* Resolves handles to DIDs automatically
* test(moderation): Add comprehensive permission validation tests
Add unit and integration tests for delegated moderation:
- Permission checker tests with multiple delegation records
- Expiration handling tests
- RPC endpoint permission enforcement tests
- Firehose integration tests
Tests verify the multi-record permission merging fix.
Related to #718
* some fixes
* remove duplicate
---------
Co-authored-by: makeworld <makeworld@protonmail.com>