Changes
This commit is contained in:
@@ -16,10 +16,10 @@ public sealed class CreateUserRequestValidator : AbstractValidator<CreateUserReq
|
||||
|
||||
RuleFor(x => x.FirstName)
|
||||
.MaximumLength(48)
|
||||
.When(x => x.FirstName is not null);
|
||||
.When(x => !string.IsNullOrWhiteSpace(x.FirstName));
|
||||
|
||||
RuleFor(x => x.SecondName)
|
||||
.MaximumLength(48)
|
||||
.When(x => x.SecondName is not null);
|
||||
.When(x => !string.IsNullOrWhiteSpace(x.SecondName));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,9 +16,6 @@ namespace Musify.Application.Tracks
|
||||
{
|
||||
public async ValueTask<ErrorOr<PaginatedResponse<TrackApplicationResponse> >> Handle(GetTracksQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
var pageNumber = request.PageNumber < 1 ? 1 : request.PageNumber;
|
||||
var pageSize = request.PageSize < 1 ? 10 : request.PageSize;
|
||||
|
||||
var tracksQuery = database.UserHasTracks
|
||||
.AsNoTracking()
|
||||
.Include(ut => ut.Track)
|
||||
@@ -35,7 +32,7 @@ namespace Musify.Application.Tracks
|
||||
var pagedTracks = await tracksQuery
|
||||
.OrderBy(t => t.Id)
|
||||
.Select(t => TrackApplicationResponse.FromEntity(t.Track))
|
||||
.ToPagedListAsync(pageNumber, pageSize, totalCount, cancellationToken);
|
||||
.ToPagedListAsync(request.PageNumber, request.PageSize, totalCount, cancellationToken);
|
||||
|
||||
return PaginatedResponse<TrackApplicationResponse>.FromPagedList(pagedTracks);
|
||||
}
|
||||
|
||||
@@ -65,9 +65,9 @@
|
||||
type="search"
|
||||
value={data.query}
|
||||
oninput={onSearchInput}
|
||||
placeholder="Buscar por nombre…"
|
||||
placeholder="Buscar por nombre..."
|
||||
autocomplete="off"
|
||||
class="w-full rounded-lg border border-white/15 bg-neutral-950 py-3 pl-11 pr-4 text-sm text-neutral-100 placeholder:text-neutral-500 focus:border-emerald-500/60 focus:outline-none"
|
||||
class="w-full rounded-lg border border-white/15 bg-neutral-950 py-3 pl-11 pr-4 text-sm text-neutral-100 placeholder:text-neutral-500 focus:border-[var(--mf-accent)]/50 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -55,10 +55,10 @@
|
||||
<section class="px-8 py-8">
|
||||
<a
|
||||
href="/playlists"
|
||||
class="group inline-flex items-center gap-2 text-sm font-medium text-neutral-400 transition-colors hover:text-white"
|
||||
class="group inline-flex items-center font-medium text-neutral-400 transition-colors hover:text-[var(--mf-accent)]"
|
||||
>
|
||||
<span
|
||||
class="grid h-8 w-8 place-items-center rounded-lg border border-white/15 text-neutral-400 transition-colors duration-150 group-hover:border-[var(--mf-accent)]/50 group-hover:bg-[var(--mf-accent)]/10 group-hover:text-[var(--mf-accent)]"
|
||||
class="grid h-8 w-8 place-items-center rounded-lg border-white/15 text-neutral-400 transition-colors duration-150 group-hover:text-[var(--mf-accent)]"
|
||||
>
|
||||
<ArrowLeft class="h-4 w-4" />
|
||||
</span>
|
||||
@@ -73,7 +73,7 @@
|
||||
/>
|
||||
<div class="min-w-0 flex-1">
|
||||
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-neutral-400">Lista</p>
|
||||
<h1 class="mt-1.5 font-display text-5xl font-bold tracking-tight sm:text-6xl">{playlist.name}</h1>
|
||||
<h1 class="mt-1.5 font-display text-5xl font-bold tracking-tight sm:text-7xl">{playlist.name}</h1>
|
||||
{#if playlist.description}
|
||||
<p class="mt-3 max-w-2xl text-neutral-300">{playlist.description}</p>
|
||||
{/if}
|
||||
@@ -111,7 +111,7 @@
|
||||
type="button"
|
||||
onclick={() => (confirmingDelete = true)}
|
||||
aria-label="Eliminar playlist"
|
||||
class="grid h-12 w-12 place-items-center rounded-lg border border-white/15 text-neutral-300 transition hover:border-red-500/40 hover:bg-red-500/10 hover:text-red-200"
|
||||
class="grid h-12 w-12 place-items-center rounded-lg border border-white/15 text-neutral-300 transition hover:border-red-500/40 hover:bg-red-500/10 hover:text-red-400"
|
||||
>
|
||||
<Trash2 class="h-4 w-4" />
|
||||
</button>
|
||||
@@ -310,7 +310,7 @@
|
||||
<div class="animate-pop w-full max-w-sm rounded-2xl border border-white/10 bg-neutral-900 p-6 shadow-2xl">
|
||||
<h2 class="font-display text-lg font-bold tracking-tight">¿Eliminar «{playlist.name}»?</h2>
|
||||
<p class="mt-2 text-sm text-neutral-400">
|
||||
Esta acción no se puede deshacer. Las canciones seguirán en tu biblioteca.
|
||||
Esta acción no se puede deshacer, la playlist se eliminará de tu biblioteca y de todos los dispositivos donde la tengas guardada.
|
||||
</p>
|
||||
<div class="mt-6 flex items-center justify-end gap-3">
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user