Merge pull request 'fix(front-end): fix no index in products' (#53) from dev into main
Reviewed-on: #53
This commit was merged in pull request #53.
This commit is contained in:
@@ -14,7 +14,15 @@ import {
|
|||||||
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
||||||
import { Router, RouterLink } from '@angular/router';
|
import { Router, RouterLink } from '@angular/router';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { catchError, combineLatest, finalize, of, switchMap, tap } from 'rxjs';
|
import {
|
||||||
|
EMPTY,
|
||||||
|
catchError,
|
||||||
|
combineLatest,
|
||||||
|
finalize,
|
||||||
|
of,
|
||||||
|
switchMap,
|
||||||
|
tap,
|
||||||
|
} from 'rxjs';
|
||||||
import { SeoService } from '../../core/services/seo.service';
|
import { SeoService } from '../../core/services/seo.service';
|
||||||
import { LanguageService } from '../../core/services/language.service';
|
import { LanguageService } from '../../core/services/language.service';
|
||||||
import { findColorHex, getColorHex } from '../../core/constants/colors.const';
|
import { findColorHex, getColorHex } from '../../core/constants/colors.const';
|
||||||
@@ -220,7 +228,12 @@ export class ProductDetailComponent {
|
|||||||
this.modelModalOpen.set(false);
|
this.modelModalOpen.set(false);
|
||||||
}),
|
}),
|
||||||
switchMap(([productSlug]) => {
|
switchMap(([productSlug]) => {
|
||||||
if (!productSlug) {
|
if (productSlug === undefined) {
|
||||||
|
return EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
const normalizedProductSlug = productSlug.trim();
|
||||||
|
if (!normalizedProductSlug) {
|
||||||
this.languageService.clearLocalizedRouteOverrides();
|
this.languageService.clearLocalizedRouteOverrides();
|
||||||
this.error.set('SHOP.NOT_FOUND');
|
this.error.set('SHOP.NOT_FOUND');
|
||||||
this.setResponseStatus(404);
|
this.setResponseStatus(404);
|
||||||
@@ -229,7 +242,9 @@ export class ProductDetailComponent {
|
|||||||
return of(null);
|
return of(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.shopService.getProductByPublicPath(productSlug).pipe(
|
return this.shopService
|
||||||
|
.getProductByPublicPath(normalizedProductSlug)
|
||||||
|
.pipe(
|
||||||
catchError((error) => {
|
catchError((error) => {
|
||||||
this.languageService.clearLocalizedRouteOverrides();
|
this.languageService.clearLocalizedRouteOverrides();
|
||||||
this.product.set(null);
|
this.product.set(null);
|
||||||
@@ -237,7 +252,9 @@ export class ProductDetailComponent {
|
|||||||
this.setSelectedImageAssetId(null);
|
this.setSelectedImageAssetId(null);
|
||||||
this.modelFile.set(null);
|
this.modelFile.set(null);
|
||||||
const isNotFound = error?.status === 404;
|
const isNotFound = error?.status === 404;
|
||||||
this.error.set(isNotFound ? 'SHOP.NOT_FOUND' : 'SHOP.LOAD_ERROR');
|
this.error.set(
|
||||||
|
isNotFound ? 'SHOP.NOT_FOUND' : 'SHOP.LOAD_ERROR',
|
||||||
|
);
|
||||||
this.setResponseStatus(isNotFound ? 404 : 503);
|
this.setResponseStatus(isNotFound ? 404 : 503);
|
||||||
if (this.shouldApplyFallbackSeo(error)) {
|
if (this.shouldApplyFallbackSeo(error)) {
|
||||||
this.applyFallbackSeo();
|
this.applyFallbackSeo();
|
||||||
|
|||||||
Reference in New Issue
Block a user