metadata component skeletons

This commit is contained in:
Joe Arndt 2026-02-24 15:02:03 -06:00
parent 20dbbbf956
commit e63c2e6f08
9 changed files with 162 additions and 12 deletions

View file

@ -1,3 +1,17 @@
<div class="categories-container"> <div class="categories-container">
Categories Component <div class="category-list-header">
<p>Categories</p>
<app-divider />
</div>
<div class="category-list">
@for (category of categories(); track category.id) {
<div>{{ category.name }}</div>
}
@if (!categories().length) {
<div class="category-list-empty">
No categories to display
</div>
}
</div>
</div> </div>

View file

@ -0,0 +1,28 @@
.categories-container {
display: grid;
gap: 1rem;
}
.category-list-header {
padding-top: 1rem;
display: flex;
flex-direction: column;
align-items: center;
p {
font-size: 1.8rem;
line-height: 100%;
font-weight: 400;
margin: 0;
}
app-divider {
width: 100%;
}
}
.category-list {
display: grid;
gap: 1rem;
justify-content: center;
}

View file

@ -1,9 +1,17 @@
import { Component } from '@angular/core'; import { Component, computed } from '@angular/core';
import { CategoryService } from '../../../services/category.service';
import { DividerComponent } from '../../divider/divider.component';
@Component({ @Component({
selector: 'app-categories', selector: 'app-categories',
imports: [], imports: [
DividerComponent
],
templateUrl: './categories.component.html', templateUrl: './categories.component.html',
styleUrl: './categories.component.scss' styleUrl: './categories.component.scss'
}) })
export class CategoriesComponent { } export class CategoriesComponent {
protected categories = computed(() => this.categoryService.categories());
public constructor(private readonly categoryService: CategoryService) { }
}

View file

@ -1,3 +1,17 @@
<div class="merchants-container"> <div class="merchants-container">
Merchants Component <div class="merchant-list-header">
<p>Merchants</p>
<app-divider />
</div>
<div class="merchant-list">
@for (merchant of merchants(); track merchant.id) {
<div>{{ merchant.name }}</div>
}
@if (!merchants().length) {
<div class="merchant-list-empty">
No merchants to display
</div>
}
</div>
</div> </div>

View file

@ -0,0 +1,28 @@
.merchants-container {
display: grid;
gap: 1rem;
}
.merchant-list-header {
padding-top: 1rem;
display: flex;
flex-direction: column;
align-items: center;
p {
font-size: 1.8rem;
line-height: 100%;
font-weight: 400;
margin: 0;
}
app-divider {
width: 100%;
}
}
.merchant-list {
display: grid;
gap: 1rem;
justify-content: center;
}

View file

@ -1,9 +1,17 @@
import { Component } from '@angular/core'; import { Component, computed } from '@angular/core';
import { MerchantService } from '../../../services/merchant.service';
import { DividerComponent } from '../../divider/divider.component';
@Component({ @Component({
selector: 'app-merchants', selector: 'app-merchants',
imports: [], imports: [
DividerComponent
],
templateUrl: './merchants.component.html', templateUrl: './merchants.component.html',
styleUrl: './merchants.component.scss' styleUrl: './merchants.component.scss'
}) })
export class MerchantsComponent { } export class MerchantsComponent {
protected merchants = computed(() => this.merchantService.merchants());
public constructor(private readonly merchantService: MerchantService) { }
}

View file

@ -1,3 +1,17 @@
<div class="tags-container"> <div class="tags-container">
Tags Component <div class="tag-list-header">
<p>Tags</p>
<app-divider />
</div>
<div class="tag-list">
@for (tag of tags(); track tag.id) {
<div>{{ tag.name }}</div>
}
@if (!tags().length) {
<div class="tag-list-empty">
No tags to display
</div>
}
</div>
</div> </div>

View file

@ -0,0 +1,28 @@
.tags-container {
display: grid;
gap: 1rem;
}
.tag-list-header {
padding-top: 1rem;
display: flex;
flex-direction: column;
align-items: center;
p {
font-size: 1.8rem;
line-height: 100%;
font-weight: 400;
margin: 0;
}
app-divider {
width: 100%;
}
}
.tag-list {
display: grid;
gap: 1rem;
justify-content: center;
}

View file

@ -1,9 +1,17 @@
import { Component } from '@angular/core'; import { Component, computed } from '@angular/core';
import { TagService } from '../../../services/tag.service';
import { DividerComponent } from '../../divider/divider.component';
@Component({ @Component({
selector: 'app-tags', selector: 'app-tags',
imports: [], imports: [
DividerComponent
],
templateUrl: './tags.component.html', templateUrl: './tags.component.html',
styleUrl: './tags.component.scss' styleUrl: './tags.component.scss'
}) })
export class TagsComponent { } export class TagsComponent {
protected tags = computed(() => this.tagService.tags());
public constructor(private readonly tagService: TagService) { }
}