Ensures the selected items in lists are correctly updated
when the underlying data changes by using `untracked` to avoid circular dependencies.
Introduces a utility function to compare sets for equality,
preventing unnecessary updates and improving performance.
Migrates the rooms lists component to leverage Angular's signal-based inputs.
This improves change detection and simplifies data flow within the component.
Updates the component's template to reflect the use of signal accessors.
Ensures initial filters are correctly applied.
Migrates the recording list component to use Angular signals for input properties and data binding.
This improves performance and simplifies the component's change detection.
- Converts input properties to input signals.
- Uses computed signals for derived values.
- Introduces effect for side effects related to recordings changes.
- Moves recording list model interfaces to shared location.
Refactors error handling to allow handlers to directly return a response.
Updates the error handler service to return null when no handler can process an error.
Sets up domain-based routing for different app features.
This change introduces a structured approach to managing application routes,
making it easier to add, modify, and maintain different sections of the application.
It configures routes for authentication, meetings, rooms, recordings, and the console.
Creates adapter interfaces for meeting context and room member operations.
This allows shared guards to interact with meeting context and room member context without directly depending on domain services, improving modularity and testability.
Adds providers to supply the adapters using existing services, enabling the use of the adapter interface within the guards.
Relocates the delete room dialog component to the rooms domain for better organization and separation of concerns.
Updates imports and references to reflect the new location of the component.
Moves recording URL generation to the component using the URL.
This provides more flexibility in how the URL is generated,
allowing the component to handle different scenarios.
The service is no longer responsible for generating the URL.
Enables configuration of recording layouts.
Specifies the recording layout in the room configuration.
Now supports different layouts, such as grid, speaker, and single-speaker.
Updated zod validation schemas
Updated integration tests
Ensures screen sharing participants are always displayed, even if not active speakers.
Modifies the participant proxy to selectively hide camera tracks when a participant is only displayed for screen sharing.
This prevents unnecessary camera rendering in the custom layout.
Improves the smart mosaic layout to enhance the user experience and performance.
- Updates participant rendering logic for smart mosaic layout.
- Optimizes audio track management to prevent audio leaks.
- Implements audio focus by selectively muting tracks for inactive speakers.
Streamlines parameter handling by centralizing logic.
The `RoomService` is no longer responsible for setting the `roomId` and `roomSecret`.
Instead, the `MeetingContextService` handles this and persists the room secret in session storage.
Refines active speaker detection for smart layouts.
It now considers audio level threshold, minimum speaking duration, and a grace period to avoid rapid speaker switching.
Also, updates the speaker recency order to prioritize currently active speakers while maintaining a history of recent speakers.