change recommendations to update through doctor

This commit is contained in:
Danel Kungla
2025-10-23 16:48:27 +03:00
parent cd6476821a
commit 9a01c15a76
8 changed files with 205 additions and 147 deletions

View File

@@ -5,27 +5,33 @@ import React, { Suspense } from 'react';
import { AccountWithParams } from '@/packages/features/accounts/src/types/accounts';
import { isValidOpenAiEnv } from '../../_lib/server/is-valid-open-ai-env';
import { loadAnalyses } from '../../_lib/server/load-analyses';
import LifeStyleCard from './life-style-card';
import OrderAnalysesPackageCard from './order-analyses-package-card';
import Recommendations from './recommendations';
import RecommendationsSkeleton from './recommendations-skeleton';
import { AnalysisResponses } from './types';
const AIBlocks = async ({ account }: { account: AccountWithParams }) => {
const AIBlocks = async ({
account,
analysisResponses,
}: {
account: AccountWithParams;
analysisResponses?: AnalysisResponses;
}) => {
const isOpenAiAvailable = await isValidOpenAiEnv();
if (!isOpenAiAvailable) {
return <OrderAnalysesPackageCard />;
}
const { analyses } = await loadAnalyses();
if (analyses.length === 0) {
if (analysisResponses?.length === 0) {
return (
<>
<OrderAnalysesPackageCard />
<Suspense fallback={<RecommendationsSkeleton amount={1} />}>
<LifeStyleCard account={account} />
<LifeStyleCard
account={account}
analysisResponses={analysisResponses}
/>
</Suspense>
</>
);
@@ -33,7 +39,7 @@ const AIBlocks = async ({ account }: { account: AccountWithParams }) => {
return (
<Suspense fallback={<RecommendationsSkeleton />}>
<LifeStyleCard account={account} />
<LifeStyleCard account={account} analysisResponses={analysisResponses} />
<Recommendations account={account} />
</Suspense>
);

View File

@@ -13,9 +13,16 @@ import { Button } from '@kit/ui/shadcn/button';
import { Card, CardHeader } from '@kit/ui/shadcn/card';
import { loadLifeStyle } from '../../_lib/server/load-life-style';
import { AnalysisResponses } from './types';
const LifeStyleCard = async ({ account }: { account: AccountWithParams }) => {
const data = await loadLifeStyle(account);
const LifeStyleCard = async ({
account,
analysisResponses,
}: {
account: AccountWithParams;
analysisResponses?: AnalysisResponses;
}) => {
const data = await loadLifeStyle(account, analysisResponses);
return (
<Card variant="gradient-success" className="flex flex-col justify-between">

View File

@@ -15,7 +15,7 @@ export default async function Recommendations({
}) {
const { analyses, countryCode } = await loadAnalyses();
const analysisRecommendations = await loadRecommendations(analyses, account);
const analysisRecommendations = await loadRecommendations(account);
const orderAnalyses = analyses.filter((analysis) =>
analysisRecommendations.includes(analysis.title),
);