[WEB-4382] fix: handled no page data (#3499)

* fix: handled no page data

* fix: empty array in the api response

---------

Co-authored-by: sangeethailango <sangeethailango21@gmail.com>
This commit is contained in:
Akshita Goyal
2025-06-25 20:51:35 +05:30
committed by GitHub
parent 5d799c15fa
commit 4899c6a2d7
3 changed files with 7 additions and 5 deletions

View File

@@ -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")
)

View File

@@ -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 ? (
<Logo logo={page.logo_props} size={16} type="lucide" />
) : (
<FileText className="size-4 text-custom-text-300" />
)}
<p className="text-xs truncate text-custom-text-300 group-hover:text-custom-text-200 transition-colors">
{getPageName(page.name)}
{getPageName(page?.name ?? "")}
</p>
<X className="size-3 flex-shrink-0 text-custom-text-400 group-hover:text-custom-text-200 transition-colors" />
</div>

View File

@@ -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);