From 6287801452660bccca6823e7dc0e9cfb1fd5b83e Mon Sep 17 00:00:00 2001
From: ghorbani
Date: Thu, 30 Jul 2026 02:24:14 +0330
Subject: [PATCH] feat: implement marriage match profile view with acceptance
and rejection workflows
---
src/app/new-match/profile/page.tsx | 8 +++--
src/app/request-accepted/page.tsx | 49 ++++++++++++++++++++++++++----
src/hooks/marriage/types.ts | 2 ++
3 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/src/app/new-match/profile/page.tsx b/src/app/new-match/profile/page.tsx
index 65aae02..a6090ae 100644
--- a/src/app/new-match/profile/page.tsx
+++ b/src/app/new-match/profile/page.tsx
@@ -116,11 +116,15 @@ export default function NewMatchProfilePage() {
const respondMutation = useRespondToMarriageCaseMutation(caseId ?? "", {
onSuccess: async (_, variables) => {
if (variables.action === "accept") {
- router.push(localizePath("/request-sent", locale));
+ if (isFemaleProfile) {
+ router.push(localizePath("/request-accepted", locale));
+ } else {
+ router.push(localizePath("/request-sent", locale));
+ }
return;
}
- router.push(localizePath("/candidate-contact", locale));
+ router.push(localizePath("/finding-match", locale));
},
});
diff --git a/src/app/request-accepted/page.tsx b/src/app/request-accepted/page.tsx
index ce55629..49a960e 100644
--- a/src/app/request-accepted/page.tsx
+++ b/src/app/request-accepted/page.tsx
@@ -12,6 +12,7 @@ import SubscriptionRequiredSheet from "@/components/ui/subscription-required-she
import { PageBackground } from "@/components/utils/page-background";
import type { MarriageField, MarriagePhoneFieldValue } from "@/hooks/marriage/types";
import { useMarriageContactInfoQuery } from "@/hooks/marriage/use-contact-info";
+import { useSubmitMarriageContactStatusMutation } from "@/hooks/marriage/use-contact-status";
import {
extractHabcoinPaymentUrl,
useHabcoinPaymentMutation,
@@ -158,6 +159,11 @@ export default function RequestAcceptedPage() {
const caseStatus = profile?.active_case?.status;
const recommendedPlanId = profile?.recommended_plan?.id;
const paymentMutation = useHabcoinPaymentMutation();
+ const contactStatusMutation = useSubmitMarriageContactStatusMutation(caseId ?? "", {
+ onSuccess: () => {
+ router.push(localizePath("/finding-match", locale));
+ },
+ });
const contactInfoQuery = useMarriageContactInfoQuery(caseId, {
enabled: false,
});
@@ -217,12 +223,30 @@ export default function RequestAcceptedPage() {
}
};
+ const handleNoContactReport = async () => {
+ if (!caseId || contactStatusMutation.isPending) return;
+ await contactStatusMutation.mutateAsync({
+ action: "no_contact",
+ custom_note: "No contact reported by female candidate after decision window",
+ });
+ };
+
return (
<>
{isCallResultSheetOpen ? (
- setIsCallResultSheetOpen(false)} />
+ setIsCallResultSheetOpen(false)}
+ onSubmit={async (value) => {
+ if (caseId) {
+ await contactStatusMutation.mutateAsync({
+ action: "contacted",
+ custom_note: value,
+ });
+ }
+ }}
+ />
) : null}
{isContactInfoSheetOpen ? (
@@ -287,11 +311,24 @@ export default function RequestAcceptedPage() {
-
-
- {primaryActionText}
-
-
+ {isFemaleProfile ? (
+
+ ) : (
+
+
+ {primaryActionText}
+
+
+ )}