refactor(product-row-card): move variant selection logic into constructor for better clarity

This commit is contained in:
2026-07-17 13:47:40 -03:00
parent 944c12a7f3
commit d4c671dc7a

View File

@@ -27,22 +27,24 @@ export class ProductRowCardComponent {
readonly quantity = model<number>(1);
readonly selectedVariant = model<any>(null);
private readonly selectFirstVariant = effect(() => {
const variants = this.variants();
const selectedVariant = this.selectedVariant();
if (
variants.length > 0 &&
!variants.some((variant) => Object.is(variant.value, selectedVariant))
) {
this.selectedVariant.set(variants[0].value);
}
});
// Interactive events
readonly buy = output<void>();
readonly addToCart = output<{ quantity: number; variant: any }>();
constructor() {
effect(() => {
const variants = this.variants();
const selectedVariant = this.selectedVariant();
if (
variants.length > 0 &&
!variants.some((variant) => Object.is(variant.value, selectedVariant))
) {
this.selectedVariant.set(variants[0].value);
}
});
}
// Formatted string for price: "$ 10.000"
readonly formattedPrice = computed(() => {
return this.formatCurrency(this.price());