Skip to content

Commit

Permalink
refactor(wdc-2023): skeleton
Browse files Browse the repository at this point in the history
  • Loading branch information
trungvose committed May 26, 2023
1 parent 4f04751 commit a4c2fe9
Show file tree
Hide file tree
Showing 18 changed files with 79 additions and 79 deletions.
5 changes: 0 additions & 5 deletions apps/angular-spotify/src/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

@use 'ng-zorro-antd/style/index.min.css' as *;
@use 'ng-zorro-antd/slider/style/index.min.css' as slide;
@use 'ng-zorro-antd/skeleton/style/index.min.css' as skeleton;
@use 'ng-zorro-antd/switch/style/index.min.css' as switch;
@use 'ng-zorro-antd/modal/style/index.min.css' as modal;
@use 'ng-zorro-antd/button/style/index.min.css' as button;
Expand All @@ -25,10 +24,6 @@ body {
@apply h-full w-full absolute overflow-hidden flex flex-col bg-black text-white/70;
}

.tracks-container .ant-skeleton-paragraph>li {
height: 24px !important;
}

a, button {
&:focus-visible {
@apply outline outline-2 outline-white outline-offset-2;
Expand Down
5 changes: 2 additions & 3 deletions libs/web/album/feature/detail/src/lib/album.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@

<div class="px-8 mb-5 album-loading"
*ngIf="isAlbumLoading$ | async">
<as-tracks-loading [avatar]="true"
[title]="true">
<as-tracks-loading [avatar]="true">
</as-tracks-loading>
</div>
</div>
</div>
7 changes: 0 additions & 7 deletions libs/web/album/feature/detail/src/lib/album.component.scss

This file was deleted.

8 changes: 7 additions & 1 deletion libs/web/album/feature/detail/src/lib/album.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ import { AlbumStore } from '@angular-spotify/web/album/data-access';
@Component({
selector: 'as-album',
templateUrl: './album.component.html',
styleUrls: ['./album.component.scss'],
styles: [
`
:host {
display: block;
}
`
],
providers: [AlbumStore],
changeDetection: ChangeDetectionStrategy.OnPush
})
Expand Down
4 changes: 2 additions & 2 deletions libs/web/album/feature/detail/src/lib/album.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AlbumComponent } from './album.component';
import { RouterModule } from '@angular/router';
import { TracksLoadingModule } from '@angular-spotify/web/shared/ui/tracks-loading';
import { TracksLoadingComponent } from '@angular-spotify/web/shared/ui/tracks-loading';
import { MediaSummaryModule } from '@angular-spotify/web/shared/ui/media-summary';
import { PlayButtonModule } from '@angular-spotify/web/shared/ui/play-button';
import { MediaTableModule } from '@angular-spotify/web/shared/ui/media-table';
Expand All @@ -11,7 +11,7 @@ import { AlbumTrackModule } from '@angular-spotify/web/album/ui/album-track';
@NgModule({
imports: [
CommonModule,
TracksLoadingModule,
TracksLoadingComponent,
MediaSummaryModule,
PlayButtonModule,
MediaTableModule,
Expand Down
2 changes: 1 addition & 1 deletion libs/web/artist/feature/src/lib/artist.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</as-media-summary>

<div class="px-8 mb-5" *ngIf="isArtistLoading$ | async">
<as-tracks-loading [avatar]="true" [title]="true" [rows]="2"> </as-tracks-loading>
<as-tracks-loading [avatar]="true"> </as-tracks-loading>
</div>

<as-artist-top-tracks></as-artist-top-tracks>
Expand Down
4 changes: 2 additions & 2 deletions libs/web/artist/feature/src/lib/artist.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { WorkInProgressModule } from '@angular-spotify/web/shared/ui/work-in-pro
import { RouterModule } from '@angular/router';
import { RouterUtil } from '@angular-spotify/web/shared/utils';
import { MediaSummaryModule } from '@angular-spotify/web/shared/ui/media-summary';
import { TracksLoadingModule } from '@angular-spotify/web/shared/ui/tracks-loading';
import { TracksLoadingComponent } from '@angular-spotify/web/shared/ui/tracks-loading';
import { ArtistTopTracksModule } from '@angular-spotify/web/artist/ui/artist-top-tracks';
@NgModule({
imports: [
Expand All @@ -18,7 +18,7 @@ import { ArtistTopTracksModule } from '@angular-spotify/web/artist/ui/artist-top
}
]),
MediaSummaryModule,
TracksLoadingModule,
TracksLoadingComponent,
ArtistTopTracksModule
],
declarations: [ArtistComponent],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<div class="mb-8" *ngIf="tracks$ | async as tracks">
<ng-container *ngFor="let item of tracks.items; let idx = index">
<as-playlist-track
*ngIf="item.track"
*ngIf="item.track"
[item]="item"
[index]="idx"
[contextUri]="getPlaylistContextUri(playlistId$ | async)"
Expand All @@ -45,8 +45,8 @@
</div>
</div>

<div class="px-8 mb-5 playlist-loading" *ngIf="isCurrentPlaylistLoading$ | async">
<as-tracks-loading [avatar]="true" [title]="true"> </as-tracks-loading>
<div class="px-8 mb-5" *ngIf="isCurrentPlaylistLoading$ | async">
<as-tracks-loading [avatar]="true"> </as-tracks-loading>
</div>

<div class="px-8" *ngIf="isPlaylistTracksLoading$ | async">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
:host {
display: block;
}

.playlist-loading {
min-height: 250px;
}
12 changes: 8 additions & 4 deletions libs/web/playlist/feature/detail/src/lib/playlist.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
@Component({
selector: 'as-playlist',
templateUrl: './playlist.component.html',
styleUrls: ['./playlist.component.scss'],
styles: [
`
:host {
display: block;
}
`
],
providers: [PlaylistStore],
changeDetection: ChangeDetectionStrategy.OnPush
})
Expand All @@ -17,9 +23,7 @@ export class PlaylistComponent {
tracks$ = this.store.tracks$;
isPlaylistTracksLoading$ = this.store.isPlaylistTracksLoading$;

constructor(private store: PlaylistStore) {

}
constructor(private store: PlaylistStore) {}

togglePlaylist(isPlaying: boolean) {
this.store.togglePlaylist({
Expand Down
4 changes: 2 additions & 2 deletions libs/web/playlist/feature/detail/src/lib/playlist.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { SvgIconsModule } from '@ngneat/svg-icon';
import { PlaylistComponent } from './playlist.component';
import { RouterUtil } from '@angular-spotify/web/shared/utils';
import { LetModule, PushModule } from '@ngrx/component';
import { TracksLoadingModule } from '@angular-spotify/web/shared/ui/tracks-loading';
import { TracksLoadingComponent } from '@angular-spotify/web/shared/ui/tracks-loading';
@NgModule({
imports: [
CommonModule,
Expand All @@ -19,7 +19,7 @@ import { TracksLoadingModule } from '@angular-spotify/web/shared/ui/tracks-loadi
PlaylistTrackModule,
SvgIconsModule,
LetModule, PushModule,
TracksLoadingModule,
TracksLoadingComponent,
RouterModule.forChild([
{
path: `:${RouterUtil.Configuration.PlaylistId}`,
Expand Down
2 changes: 1 addition & 1 deletion libs/web/shared/ui/tracks-loading/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './lib/tracks-loading.module';
export * from './lib/tracks-loading.component';
10 changes: 10 additions & 0 deletions libs/web/shared/ui/tracks-loading/src/lib/skeleton.component.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Component, HostBinding } from '@angular/core';

@Component({
selector: 'as-skeleton',
template: `<ng-content></ng-content>`,
standalone: true
})
export class SkeletonComponent {
@HostBinding('class') class = 'bg-highlight animate-pulse text-transparent rounded-sm block';
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
<nz-skeleton
class="tracks-container"
[nzParagraph]="{ rows: rows, width: '100%' }"
[nzAvatar]="avatar"
[nzTitle]="title"
[nzActive]="true"
>
</nz-skeleton>
<div *ngIf="avatar" class="flex gap-8">
<as-skeleton class="w-32 h-32 flex-shrink-0"></as-skeleton>
<div class="flex flex-col flex-1 gap-4">
<as-skeleton class="w-full h-6"></as-skeleton>
<as-skeleton class="w-full h-10"></as-skeleton>
<as-skeleton class="w-full h-6"></as-skeleton>
</div>
</div>

<div *ngIf="!avatar" class="flex flex-col gap-4">
<as-skeleton class="w-full h-6" *ngFor="let row of skeletonRows"></as-skeleton>
</div>
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { SkeletonComponent } from './skeleton.component';
import { NgClass, NgFor, NgIf } from '@angular/common';

@Component({
selector: 'as-tracks-loading',
templateUrl: './tracks-loading.component.html',
changeDetection: ChangeDetectionStrategy.OnPush
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
imports: [SkeletonComponent, NgFor, NgClass, NgIf]
})
export class TracksLoadingComponent {
skeletonRows: number[] = Array.from({ length: 5 });
@Input() avatar = false;
@Input() title = false;
@Input() rows = 5;
@Input() set rows(value: number) {
this.skeletonRows = Array.from({ length: value });
}
}
11 changes: 0 additions & 11 deletions libs/web/shared/ui/tracks-loading/src/lib/tracks-loading.module.ts

This file was deleted.

38 changes: 18 additions & 20 deletions libs/web/tracks/feature/src/lib/tracks.component.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
<div class="content-spacing">
<ng-container *ngIf="vm$ | async as vm">
<as-media-summary type="Playlist"
[imageUrl]="'https://data.whicdn.com/images/315873335/original.jpg'"
[title]="'Liked Songs'"
[trackCount]="vm.data?.total">
<as-media-summary
type="Playlist"
[imageUrl]="'https://data.whicdn.com/images/315873335/original.jpg'"
[title]="'Liked Songs'"
[trackCount]="vm.data?.total"
>
</as-media-summary>

<as-media-table-header>
Expand All @@ -12,30 +14,26 @@
<div class="text-xs uppercase ellipsis-one-line">Title</div>
<div class="text-xs uppercase ellipsis-one-line">Album</div>
<div class="text-xs uppercase ellipsis-one-line">Date added</div>
<svg-icon [key]="'clock'"
title="duration">
</svg-icon>
<svg-icon [key]="'clock'" title="duration"> </svg-icon>
</div>
</as-media-table-header>


<div class="mb-8">
<ng-container *ngFor="let item of vm.data?.items; let idx = index">
<as-playlist-track *ngIf="item.track"
type='LIKE_SONGS'
[item]="$any(item)"
[index]="idx"
[contextUri]="item.track.album.uri"
(dblclick)="playTrack(item.track)">
<as-playlist-track
*ngIf="item.track"
type="LIKE_SONGS"
[item]="$any(item)"
[index]="idx"
[contextUri]="item.track.album.uri"
(dblclick)="playTrack(item.track)"
>
</as-playlist-track>
</ng-container>
</div>

<div class="px-8 mb-5 album-loading"
*ngIf="vm.isLoading">
<as-tracks-loading [avatar]="true"
[title]="true">
</as-tracks-loading>
<div class="px-8 mb-5 album-loading" *ngIf="vm.isLoading">
<as-tracks-loading [avatar]="true"> </as-tracks-loading>
</div>
</ng-container>
</div>
</div>
4 changes: 2 additions & 2 deletions libs/web/tracks/feature/src/lib/tracks.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { TracksComponent } from './tracks.component';
import { WorkInProgressModule } from '@angular-spotify/web/shared/ui/work-in-progress';
import { TracksLoadingModule } from '@angular-spotify/web/shared/ui/tracks-loading';
import { TracksLoadingComponent } from '@angular-spotify/web/shared/ui/tracks-loading';
import { MediaSummaryModule } from '@angular-spotify/web/shared/ui/media-summary';
import { MediaTableModule } from '@angular-spotify/web/shared/ui/media-table';
import { SvgIconsModule } from '@ngneat/svg-icon';
Expand All @@ -18,7 +18,7 @@ import { PlaylistTrackModule } from '@angular-spotify/web/playlist/ui/playlist-t
component: TracksComponent
}
]),
TracksLoadingModule,
TracksLoadingComponent,
MediaSummaryModule,
MediaTableModule,
SvgIconsModule,
Expand Down

0 comments on commit a4c2fe9

Please sign in to comment.