From 969e9158156a456f26f0ef4e625f28fb87a8c132 Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Mon, 15 Jun 2026 16:54:11 +0330 Subject: [PATCH] fix(appointment): extract insurance list from double-nested response MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GET /api/v1/insurances returns success(['data' => items]) → the body is { data: { data: [...] } }, so after the interceptor unwraps once the array lives at res.data.data, not res.data. The callers set the list to the wrapper object, so insurance.find threw 'not a function'. Read res.data.data and guard with Array.isArray in both the booking detail form and the dashboard insurance loader. Co-Authored-By: Claude Opus 4.8 --- components/appointment/detail/index.js | 10 ++++++---- .../userAccount/detailUser/information/index.js | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/components/appointment/detail/index.js b/components/appointment/detail/index.js index d43854c..e62b68c 100644 --- a/components/appointment/detail/index.js +++ b/components/appointment/detail/index.js @@ -36,15 +36,17 @@ function Detail({ useEffect(() => { // دریافت لیست بیمه پایه request.getInsuranceType().then((res) => { - if (res && res.data) { - setInsurance(res.data); + const items = res?.data?.data; + if (Array.isArray(items)) { + setInsurance(items); } }); // دریافت لیست بیمه تکمیلی request.getSupplementaryInsurance().then((res) => { - if (res && res.data) { - setSupplementaryInsurance(res.data); + const items = res?.data?.data; + if (Array.isArray(items)) { + setSupplementaryInsurance(items); } }); }, []); diff --git a/components/dashboard/userAccount/detailUser/information/index.js b/components/dashboard/userAccount/detailUser/information/index.js index 3294da8..f724c27 100644 --- a/components/dashboard/userAccount/detailUser/information/index.js +++ b/components/dashboard/userAccount/detailUser/information/index.js @@ -16,8 +16,9 @@ function Information({ information, setInformation }) { const parsedUserInfo = getParsedUserInfo(); request.getInsuranceType().then((res) => { - if (res && res.data) { - setInsurance(res.data); + const items = res?.data?.data; + if (Array.isArray(items)) { + setInsurance(items); } });