Backend: - Expose GET /config/playback so the frontend can detect whether anonymous listening is enabled without requiring auth - Wire anonymous access through track streaming and YouTube resolve flows Frontend: - Allow browsing/listening without a session when the backend enables it - Redesign Inicio, Sidebar and top bar with a new dark theme, typography, and layout (top bar with live quick-search, sticky/blurred on scroll) - Populate Top música, Popular and Recomendados with real Musify + YouTube Music data instead of placeholders - Various shape, spacing, color and animation refinements across the redesigned components
19 lines
938 B
C#
19 lines
938 B
C#
using Mediator;
|
|
using Musify.Application.Configuration.Responses;
|
|
|
|
namespace Musify.Application.Configuration
|
|
{
|
|
/// <summary>Reads the parts of <see cref="PlaybackConfiguration"/> that are safe to expose to an
|
|
/// unauthenticated client, so it can decide whether to gate the app behind sign-in at all.</summary>
|
|
public record GetPlaybackPublicConfigQuery : IQuery<PlaybackPublicConfigResponse>;
|
|
|
|
public class GetPlaybackPublicConfigQueryHandler(PlaybackConfiguration playbackConfiguration)
|
|
: IQueryHandler<GetPlaybackPublicConfigQuery, PlaybackPublicConfigResponse>
|
|
{
|
|
public ValueTask<PlaybackPublicConfigResponse> Handle(GetPlaybackPublicConfigQuery query, CancellationToken cancellationToken) =>
|
|
ValueTask.FromResult(new PlaybackPublicConfigResponse(
|
|
playbackConfiguration.AllowAnonymousListening,
|
|
playbackConfiguration.AnonymousFragmentSeconds));
|
|
}
|
|
}
|