From 8386e541cbe44172d24bc1d845faa5d4e684ba1f Mon Sep 17 00:00:00 2001 From: Danel Kungla Date: Wed, 8 Oct 2025 16:32:19 +0300 Subject: [PATCH] MED-198: add notification for new analysis result --- .../analysis-results/[id]/page.tsx | 10 ++++++++ app/home/(user)/(dashboard)/order/page.tsx | 8 +++++++ .../_components/home-mobile-navigation.tsx | 6 ++++- .../(user)/_components/orders/order-block.tsx | 1 + .../_components/orders/order-items-table.tsx | 14 ++++++++--- app/home/(user)/_lib/server/cart-actions.ts | 7 ------ .../medipostPrivateMessage.service.ts | 23 ++++++++++++++++++- .../medusa-storefront/src/lib/data/orders.ts | 5 +++- .../features/notifications/src/server/api.ts | 9 ++++++++ .../src/server/notifications.service.ts | 17 ++++++++++++++ public/locales/en/analysis-results.json | 5 +++- public/locales/en/orders.json | 9 ++++++++ public/locales/et/analysis-results.json | 5 +++- public/locales/et/orders.json | 9 ++++++++ public/locales/ru/analysis-results.json | 5 +++- public/locales/ru/orders.json | 9 ++++++++ 16 files changed, 126 insertions(+), 16 deletions(-) diff --git a/app/home/(user)/(dashboard)/analysis-results/[id]/page.tsx b/app/home/(user)/(dashboard)/analysis-results/[id]/page.tsx index 4962016..b506ab5 100644 --- a/app/home/(user)/(dashboard)/analysis-results/[id]/page.tsx +++ b/app/home/(user)/(dashboard)/analysis-results/[id]/page.tsx @@ -3,6 +3,9 @@ import React from 'react'; import Link from 'next/link'; import { redirect } from 'next/navigation'; +import { createNotificationsApi } from '@/packages/features/notifications/src/server/api'; +import { getSupabaseServerClient } from '@/packages/supabase/src/clients/server-client'; + import { ButtonTooltip } from '@kit/shared/components/ui/button-tooltip'; import { pathsConfig } from '@kit/shared/config'; import { Button } from '@kit/ui/button'; @@ -25,7 +28,9 @@ export default async function AnalysisResultsPage({ id: string; }>; }) { + const supabaseClient = getSupabaseServerClient(); const { id: analysisOrderId } = await params; + const notificationsApi = createNotificationsApi(supabaseClient); const [{ account }, analysisResponse] = await Promise.all([ loadCurrentUserAccount(), @@ -41,6 +46,11 @@ export default async function AnalysisResultsPage({ action: PageViewAction.VIEW_ANALYSIS_RESULTS, }); + await notificationsApi.dismissNotification( + `/home/analysis-results/${analysisOrderId}`, + 'link', + ); + if (!analysisResponse) { return ( <> diff --git a/app/home/(user)/(dashboard)/order/page.tsx b/app/home/(user)/(dashboard)/order/page.tsx index 4365b73..dfcde84 100644 --- a/app/home/(user)/(dashboard)/order/page.tsx +++ b/app/home/(user)/(dashboard)/order/page.tsx @@ -90,6 +90,14 @@ async function OrdersPage() { ), ); + if ( + medusaOrderItemsAnalysisPackages.length === 0 && + medusaOrderItemsOther.length === 0 && + medusaOrderItemsTtoServices.length === 0 + ) { + return null; + } + return ( diff --git a/app/home/(user)/_components/home-mobile-navigation.tsx b/app/home/(user)/_components/home-mobile-navigation.tsx index f7bd054..47f86a9 100644 --- a/app/home/(user)/_components/home-mobile-navigation.tsx +++ b/app/home/(user)/_components/home-mobile-navigation.tsx @@ -32,6 +32,7 @@ import { Trans } from '@kit/ui/trans'; // home imports import type { UserWorkspace } from '../_lib/server/load-user-workspace'; +import { UserNotifications } from './user-notifications'; const PERSONAL_ACCOUNT_SLUG = 'personal'; @@ -90,7 +91,7 @@ export function HomeMobileNavigation(props: { return ( -
+