Added alternative if we are an empty gallery

This commit is contained in:
2026-04-16 17:02:11 +01:00
parent 9e729202f0
commit 6bf8230fa3
3 changed files with 43 additions and 26 deletions
@@ -1,26 +1,41 @@
@if (!modal) { @if (proofs().length > 0) {
<div class="bg-white rounded-lg p-2 shadow-sm border border-gray-200 overflow-scroll max-h-full"> @if (!modal) {
<div class="grid grid-cols-4 gap-3"> <div class="bg-white rounded-lg p-2 shadow-sm border border-gray-200 overflow-scroll max-h-full">
@for (p of proofs(); track p) { <div class="grid grid-cols-4 gap-3">
<img [src]="'data:image/jpeg;base64,' + p.proof" @for (p of proofs(); track p) {
class="w-20 h-20 object-cover" <img [src]="'data:image/jpeg;base64,' + p.proof"
alt="" class="w-20 h-20 object-cover"
(click)="openProof(p.proof)" alt=""
/> (click)="openProof(p.proof)"
} />
}
</div>
</div> </div>
</div> } @else {
<div class="fixed inset-0 flex items-center justify-center z-50" (click)="closeProof()">
<button class="absolute top-15 right-1 text-gray-300 text-4xl font-bold p-5 bg-transparent"
(click)="closeProof()">
<ion-icon name="close-circle-outline"></ion-icon>
</button>
<img [src]="'data:image/jpeg;base64,' + selectedProof()"
class="w-[90%] h-[90%] object-cover rounded-md mt-10"
alt=""
/>
</div>
}
} @else { } @else {
<div class="fixed inset-0 flex items-center justify-center z-50" (click)="closeProof()"> <ion-item lines="none" class="border border-stone-200 rounded-xl m-3" style="--background: #fafaf8;">
<button class="absolute top-15 right-1 text-gray-300 text-4xl font-bold p-5 bg-transparent" <div class="flex flex-col items-center w-full px-5 py-8 gap-3">
(click)="closeProof()"> <div class="w-10 h-10 rounded-full bg-stone-100 border border-stone-200 flex items-center justify-center">
<ion-icon name="close-circle-outline"></ion-icon> <ion-icon name="image" style="color:#a8a090; font-size:20px;"></ion-icon>
</button> </div>
<div class="text-center">
<img [src]="'data:image/jpeg;base64,' + selectedProof()" <p class="m-0 text-sm font-medium text-stone-400">C'est bien vide par ici...</p>
class="w-[90%] h-[90%] object-cover rounded-md mt-10" <p class="m-0 mt-1 text-xs text-stone-300 leading-relaxed">Participe à des défis pour remplir ta galerie
alt="" !</p>
/> </div>
</div>
</div> </ion-item>
} }
@@ -3,10 +3,11 @@ import {IonicModule, LoadingController, ToastController} from "@ionic/angular";
import {GetUserProofDto, UsersService} from "../../services/api"; import {GetUserProofDto, UsersService} from "../../services/api";
import {firstValueFrom} from "rxjs"; import {firstValueFrom} from "rxjs";
import {addIcons} from "ionicons"; import {addIcons} from "ionicons";
import {closeCircleOutline} from "ionicons/icons"; import {closeCircleOutline, imageOutline} from "ionicons/icons";
addIcons({ addIcons({
'close-circle-outline': closeCircleOutline 'close-circle-outline': closeCircleOutline,
'image': imageOutline,
}) })
@Component({ @Component({
+2 -1
View File
@@ -103,7 +103,8 @@
<app-modal> <app-modal>
<div class="p-4"> <div class="p-4">
<app-designation-form [user]="user()" <app-designation-form [user]="user()"
(userDesignation)="user.set($event)"></app-designation-form> (userDesignation)="user.set($event)">
</app-designation-form>
</div> </div>
</app-modal> </app-modal>
} }