prettier fix
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { cache } from 'react';
|
||||
|
||||
|
||||
import { createAccountsApi } from '@kit/accounts/api';
|
||||
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { cache } from 'react';
|
||||
|
||||
import { getProductCategories } from '@lib/data/categories';
|
||||
import { listProducts, listProductTypes } from '@lib/data/products';
|
||||
import { listProductTypes, listProducts } from '@lib/data/products';
|
||||
import { listRegions } from '@lib/data/regions';
|
||||
|
||||
import { OrderAnalysisCard } from '../../_components/order-analyses-cards';
|
||||
@@ -40,9 +40,9 @@ async function analysesLoader() {
|
||||
);
|
||||
const categoryProducts = category
|
||||
? await listProducts({
|
||||
countryCode,
|
||||
queryParams: { limit: 100, category_id: category.id, order: 'title' },
|
||||
})
|
||||
countryCode,
|
||||
queryParams: { limit: 100, category_id: category.id, order: 'title' },
|
||||
})
|
||||
: null;
|
||||
|
||||
const serviceCategories = productCategories.filter(
|
||||
@@ -52,21 +52,24 @@ async function analysesLoader() {
|
||||
return {
|
||||
analyses:
|
||||
categoryProducts?.response.products
|
||||
.filter(({ status, metadata }) => status === 'published' && !!metadata?.analysisIdOriginal)
|
||||
.map<OrderAnalysisCard>(
|
||||
({ title, description, subtitle, variants }) => {
|
||||
const variant = variants![0]!;
|
||||
return {
|
||||
title,
|
||||
description,
|
||||
subtitle,
|
||||
variant: {
|
||||
id: variant.id,
|
||||
},
|
||||
price: variant.calculated_price?.calculated_amount ?? null,
|
||||
};
|
||||
},
|
||||
) ?? [],
|
||||
.filter(
|
||||
({ status, metadata }) =>
|
||||
status === 'published' && !!metadata?.analysisIdOriginal,
|
||||
)
|
||||
.map<OrderAnalysisCard>(
|
||||
({ title, description, subtitle, variants }) => {
|
||||
const variant = variants![0]!;
|
||||
return {
|
||||
title,
|
||||
description,
|
||||
subtitle,
|
||||
variant: {
|
||||
id: variant.id,
|
||||
},
|
||||
price: variant.calculated_price?.calculated_amount ?? null,
|
||||
};
|
||||
},
|
||||
) ?? [],
|
||||
countryCode,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
import { cache } from 'react';
|
||||
|
||||
import { listProductTypes, listProducts } from "@lib/data/products";
|
||||
import { listRegions } from '@lib/data/regions';
|
||||
import { getAnalysisElementMedusaProductIds } from '@/utils/medusa-product';
|
||||
import { listProductTypes, listProducts } from '@lib/data/products';
|
||||
import { listRegions } from '@lib/data/regions';
|
||||
import type { StoreProduct } from '@medusajs/types';
|
||||
import { loadCurrentUserAccount } from './load-user-account';
|
||||
|
||||
import type { AccountWithParams } from '@kit/accounts/types/accounts';
|
||||
import type { AnalysisPackageWithVariant } from '@kit/shared/components/select-analysis-package';
|
||||
|
||||
import PersonalCode from '~/lib/utils';
|
||||
|
||||
import { loadCurrentUserAccount } from './load-user-account';
|
||||
|
||||
async function countryCodesLoader() {
|
||||
const countryCodes = await listRegions().then((regions) =>
|
||||
regions?.map((r) => r.countries?.map((c) => c.iso_2)).flat(),
|
||||
@@ -33,24 +36,25 @@ function userSpecificVariantLoader({
|
||||
throw new Error('Personal code not found');
|
||||
}
|
||||
|
||||
const { ageRange, gender: { value: gender } } = PersonalCode.parsePersonalCode(personalCode);
|
||||
const {
|
||||
ageRange,
|
||||
gender: { value: gender },
|
||||
} = PersonalCode.parsePersonalCode(personalCode);
|
||||
|
||||
return ({
|
||||
product,
|
||||
}: {
|
||||
product: StoreProduct;
|
||||
}) => {
|
||||
return ({ product }: { product: StoreProduct }) => {
|
||||
const variants = product.variants;
|
||||
if (!variants) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const variant = variants.find((v) => v.options?.every((o) => [ageRange, gender].includes(o.value)));
|
||||
const variant = variants.find((v) =>
|
||||
v.options?.every((o) => [ageRange, gender].includes(o.value)),
|
||||
);
|
||||
if (!variant) {
|
||||
return null;
|
||||
}
|
||||
return variant;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async function analysisPackageElementsLoader({
|
||||
@@ -60,30 +64,46 @@ async function analysisPackageElementsLoader({
|
||||
analysisPackagesWithVariant: AnalysisPackageWithVariant[];
|
||||
countryCode: string;
|
||||
}) {
|
||||
const analysisElementMedusaProductIds = getAnalysisElementMedusaProductIds(analysisPackagesWithVariant);
|
||||
const analysisElementMedusaProductIds = getAnalysisElementMedusaProductIds(
|
||||
analysisPackagesWithVariant,
|
||||
);
|
||||
if (analysisElementMedusaProductIds.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const { response: { products } } = await listProducts({
|
||||
const {
|
||||
response: { products },
|
||||
} = await listProducts({
|
||||
countryCode,
|
||||
queryParams: {
|
||||
id: analysisElementMedusaProductIds,
|
||||
limit: 100,
|
||||
order: "title",
|
||||
order: 'title',
|
||||
},
|
||||
});
|
||||
|
||||
const standardPackage = analysisPackagesWithVariant.find(({ isStandard }) => isStandard);
|
||||
const standardPlusPackage = analysisPackagesWithVariant.find(({ isStandardPlus }) => isStandardPlus);
|
||||
const premiumPackage = analysisPackagesWithVariant.find(({ isPremium }) => isPremium);
|
||||
const standardPackage = analysisPackagesWithVariant.find(
|
||||
({ isStandard }) => isStandard,
|
||||
);
|
||||
const standardPlusPackage = analysisPackagesWithVariant.find(
|
||||
({ isStandardPlus }) => isStandardPlus,
|
||||
);
|
||||
const premiumPackage = analysisPackagesWithVariant.find(
|
||||
({ isPremium }) => isPremium,
|
||||
);
|
||||
if (!standardPackage || !standardPlusPackage || !premiumPackage) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const standardPackageAnalyses = getAnalysisElementMedusaProductIds([standardPackage]);
|
||||
const standardPlusPackageAnalyses = getAnalysisElementMedusaProductIds([standardPlusPackage]);
|
||||
const premiumPackageAnalyses = getAnalysisElementMedusaProductIds([premiumPackage]);
|
||||
const standardPackageAnalyses = getAnalysisElementMedusaProductIds([
|
||||
standardPackage,
|
||||
]);
|
||||
const standardPlusPackageAnalyses = getAnalysisElementMedusaProductIds([
|
||||
standardPlusPackage,
|
||||
]);
|
||||
const premiumPackageAnalyses = getAnalysisElementMedusaProductIds([
|
||||
premiumPackage,
|
||||
]);
|
||||
|
||||
return products.map(({ id, title, description }) => ({
|
||||
id,
|
||||
@@ -103,18 +123,20 @@ async function analysisPackagesWithVariantLoader({
|
||||
countryCode: string;
|
||||
}) {
|
||||
const productTypes = await loadProductTypes();
|
||||
const productType = productTypes.find(({ metadata }) => metadata?.handle === 'analysis-packages');
|
||||
const productType = productTypes.find(
|
||||
({ metadata }) => metadata?.handle === 'analysis-packages',
|
||||
);
|
||||
if (!productType) {
|
||||
return null;
|
||||
}
|
||||
const analysisPackagesResponse = await listProducts({
|
||||
countryCode,
|
||||
queryParams: { limit: 100, "type_id[0]": productType.id },
|
||||
queryParams: { limit: 100, 'type_id[0]': productType.id },
|
||||
});
|
||||
|
||||
const getVariant = userSpecificVariantLoader({ account });
|
||||
const analysisPackagesWithVariant = analysisPackagesResponse.response.products
|
||||
.reduce((acc, product) => {
|
||||
const analysisPackagesWithVariant =
|
||||
analysisPackagesResponse.response.products.reduce((acc, product) => {
|
||||
const variant = getVariant({ product });
|
||||
if (!variant) {
|
||||
return acc;
|
||||
@@ -124,14 +146,17 @@ async function analysisPackagesWithVariantLoader({
|
||||
{
|
||||
variant,
|
||||
variantId: variant.id,
|
||||
nrOfAnalyses: getAnalysisElementMedusaProductIds([{ ...product, variant }]).length,
|
||||
nrOfAnalyses: getAnalysisElementMedusaProductIds([
|
||||
{ ...product, variant },
|
||||
]).length,
|
||||
price: variant.calculated_price?.calculated_amount ?? 0,
|
||||
title: product.title,
|
||||
subtitle: product.subtitle,
|
||||
description: product.description,
|
||||
metadata: product.metadata,
|
||||
isStandard: product.metadata?.analysisPackageTier === 'standard',
|
||||
isStandardPlus: product.metadata?.analysisPackageTier === 'standard-plus',
|
||||
isStandardPlus:
|
||||
product.metadata?.analysisPackageTier === 'standard-plus',
|
||||
isPremium: product.metadata?.analysisPackageTier === 'premium',
|
||||
},
|
||||
];
|
||||
@@ -149,13 +174,23 @@ async function analysisPackagesLoader() {
|
||||
const countryCodes = await loadCountryCodes();
|
||||
const countryCode = countryCodes[0]!;
|
||||
|
||||
const analysisPackagesWithVariant = await analysisPackagesWithVariantLoader({ account, countryCode });
|
||||
const analysisPackagesWithVariant = await analysisPackagesWithVariantLoader({
|
||||
account,
|
||||
countryCode,
|
||||
});
|
||||
if (!analysisPackagesWithVariant) {
|
||||
return { analysisPackageElements: [], analysisPackages: [], countryCode };
|
||||
}
|
||||
|
||||
const analysisPackageElements = await analysisPackageElementsLoader({ analysisPackagesWithVariant, countryCode });
|
||||
const analysisPackageElements = await analysisPackageElementsLoader({
|
||||
analysisPackagesWithVariant,
|
||||
countryCode,
|
||||
});
|
||||
|
||||
return { analysisPackageElements, analysisPackages: analysisPackagesWithVariant, countryCode };
|
||||
return {
|
||||
analysisPackageElements,
|
||||
analysisPackages: analysisPackagesWithVariant,
|
||||
countryCode,
|
||||
};
|
||||
}
|
||||
export const loadAnalysisPackages = cache(analysisPackagesLoader);
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { cache } from 'react';
|
||||
|
||||
import { requireUserInServerComponent } from '@/lib/server/require-user-in-server-component';
|
||||
|
||||
import { createAccountsApi } from '@kit/accounts/api';
|
||||
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
||||
import { requireUserInServerComponent } from '@/lib/server/require-user-in-server-component';
|
||||
|
||||
export type UserAccount = Awaited<ReturnType<typeof loadUserAccount>>;
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { cache } from 'react';
|
||||
|
||||
import type { AnalysisResultDetailsMapped } from '@/packages/features/user-analyses/src/types/analysis-results';
|
||||
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
||||
import { createUserAnalysesApi } from '@/packages/features/user-analyses/src/server/api';
|
||||
import type { AnalysisResultDetailsMapped } from '@/packages/features/user-analyses/src/types/analysis-results';
|
||||
|
||||
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
||||
|
||||
export type UserAnalyses = Awaited<ReturnType<typeof loadUserAnalysis>>;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use server";
|
||||
'use server';
|
||||
|
||||
import { retrieveCart, updateCart, updateLineItem } from "@lib/data/cart";
|
||||
import { retrieveCart, updateCart, updateLineItem } from '@lib/data/cart';
|
||||
|
||||
export const updateCartPartnerLocation = async ({
|
||||
cartId,
|
||||
@@ -15,7 +15,7 @@ export const updateCartPartnerLocation = async ({
|
||||
}) => {
|
||||
const cart = await retrieveCart(cartId);
|
||||
if (!cart) {
|
||||
throw new Error("Cart not found");
|
||||
throw new Error('Cart not found');
|
||||
}
|
||||
|
||||
for (const lineItemId of lineIds) {
|
||||
@@ -35,4 +35,4 @@ export const updateCartPartnerLocation = async ({
|
||||
partner_location_id: partnerLocationId,
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user