From 4899c6a2d7e4854b76c6f010dcb95e6bf054e475 Mon Sep 17 00:00:00 2001 From: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Date: Wed, 25 Jun 2025 20:51:35 +0530 Subject: [PATCH] [WEB-4382] fix: handled no page data (#3499) * fix: handled no page data * fix: empty array in the api response --------- Co-authored-by: sangeethailango --- apiserver/plane/ee/views/app/issue/issue_page.py | 2 +- .../issue-detail-widgets/pages/multi-select-modal.tsx | 8 +++++--- web/ee/store/issue/issue-details/page.store.ts | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apiserver/plane/ee/views/app/issue/issue_page.py b/apiserver/plane/ee/views/app/issue/issue_page.py index 2786ba6631..f58d586dee 100644 --- a/apiserver/plane/ee/views/app/issue/issue_page.py +++ b/apiserver/plane/ee/views/app/issue/issue_page.py @@ -56,7 +56,7 @@ class IssuePageViewSet(BaseAPIView): work_item_pages_ids = [work_item_page.id for work_item_page in work_item_pages] work_item_pages = ( - self.filter_work_item_pages(workspace, project_id, issue_id) + self.filter_work_item_pages(slug, project_id, issue_id) .filter(id__in=work_item_pages_ids) .select_related("page") ) diff --git a/web/ee/components/issues/issue-detail-widgets/pages/multi-select-modal.tsx b/web/ee/components/issues/issue-detail-widgets/pages/multi-select-modal.tsx index e12e440b16..77d9458d4d 100644 --- a/web/ee/components/issues/issue-detail-widgets/pages/multi-select-modal.tsx +++ b/web/ee/components/issues/issue-detail-widgets/pages/multi-select-modal.tsx @@ -58,7 +58,9 @@ const PagesMultiSelectModal = observer( const [showWikiPages, setShowWikiPages] = useState(false); const [isLoading, setIsLoading] = useState(true); - const issuePages = getPagesByIssueId(workItemId).map((id) => getPageById(id)); + const issuePages = getPagesByIssueId(workItemId) + .map((id) => getPageById(id)) + .filter((page) => page !== undefined); const handleClose = () => { onClose(); @@ -175,13 +177,13 @@ const PagesMultiSelectModal = observer( className="group flex items-center gap-1.5 bg-custom-background-90 px-2 py-1 rounded cursor-pointer w-fit overflow-hidden" onClick={() => setSelectedPages((prev) => prev.filter((p) => p.id !== page.id))} > - {page.logo_props && page.logo_props?.in_use ? ( + {page?.logo_props && page.logo_props?.in_use ? ( ) : ( )}

- {getPageName(page.name)} + {getPageName(page?.name ?? "")}

diff --git a/web/ee/store/issue/issue-details/page.store.ts b/web/ee/store/issue/issue-details/page.store.ts index 9109120d79..85cbe899c3 100644 --- a/web/ee/store/issue/issue-details/page.store.ts +++ b/web/ee/store/issue/issue-details/page.store.ts @@ -66,10 +66,10 @@ export class WorkItemPagesStore implements IWorkItemPagesInterface { try { const result = await this.issuePageService.updateWorkItemPage(workspaceSlug, projectId, issueId, pages); runInAction(async () => { - this.issuePagesMap[issueId] = pages; result.forEach((data) => { this.pagesMap[data.page.id] = { ...data.page, name: getPageName(data.page.name) }; }); + this.issuePagesMap[issueId] = result.map((data) => data.page.id) || []; }); } catch (error) { console.error(error);