[WEB-1603] fix: load more issues when issues are deleted (#4830)

* fix load more issues when issues are deleted

* fix build
This commit is contained in:
rahulramesha 2024-06-15 11:07:04 +05:30 committed by GitHub
parent a8f4d21e8b
commit bba10d7073
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 55 additions and 18 deletions

View file

@ -91,9 +91,15 @@ export const KanbanGroup = observer((props: IKanbanGroup) => {
loadMoreIssues(groupId, sub_group_id === "null"? undefined: sub_group_id)
}, [loadMoreIssues, groupId, sub_group_id])
useIntersectionObserver(containerRef, intersectionElement, loadMoreIssuesInThisGroup, `0% 100% 100% 100%`);
const [isDraggingOverColumn, setIsDraggingOverColumn] = useState(false);
const isPaginating = !!getIssueLoader(groupId);
useIntersectionObserver(
containerRef,
isPaginating ? null : intersectionElement,
loadMoreIssuesInThisGroup,
`0% 100% 100% 100%`
);
const [isDraggingOverColumn, setIsDraggingOverColumn] = useState(false);
// Enable Kanban Columns as Drop Targets
useEffect(() => {
@ -216,7 +222,6 @@ export const KanbanGroup = observer((props: IKanbanGroup) => {
const nextPageResults = getPaginationData(groupId, sub_group_id)?.nextPageResults;
const isPaginating = !!getIssueLoader(groupId, sub_group_id);
const loadMore = isPaginating ? (
<KanbanIssueBlockLoader />

View file

@ -98,12 +98,12 @@ export const ListGroup = observer((props: Props) => {
const [intersectionElement, setIntersectionElement] = useState<HTMLDivElement | null>(null);
useIntersectionObserver(containerRef, intersectionElement, loadMoreIssues, `50% 0% 50% 0%`);
const groupIssueCount = getGroupIssueCount(group.id, undefined, false) ?? 0;
const nextPageResults = getPaginationData(group.id, undefined)?.nextPageResults;
const isPaginating = !!getIssueLoader(group.id);
useIntersectionObserver(containerRef, isPaginating ? null : intersectionElement, loadMoreIssues, `50% 0% 50% 0%`);
const shouldLoadMore =
nextPageResults === undefined && groupIssueCount !== undefined && groupIssueIds
? groupIssueIds.length < groupIssueCount

View file

@ -5,6 +5,7 @@ import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssue } from "@pl
import { SpreadsheetIssueRowLoader } from "@/components/ui/loader";
//hooks
import { useIntersectionObserver } from "@/hooks/use-intersection-observer";
import { useIssuesStore } from "@/hooks/use-issue-layout-store";
import { TSelectionHelper } from "@/hooks/use-multiple-select";
import { useTableKeyboardNavigation } from "@/hooks/use-table-keyboard-navigation";
// components
@ -52,6 +53,10 @@ export const SpreadsheetTable = observer((props: Props) => {
const isScrolled = useRef(false);
const [intersectionElement, setIntersectionElement] = useState<HTMLTableSectionElement | null>(null);
const {
issues: { getIssueLoader },
} = useIssuesStore();
const handleScroll = useCallback(() => {
if (!containerRef.current) return;
const scrollLeft = containerRef.current.scrollLeft;
@ -85,7 +90,9 @@ export const SpreadsheetTable = observer((props: Props) => {
};
}, [handleScroll, containerRef]);
useIntersectionObserver(containerRef, intersectionElement, loadMoreIssues, `50% 0% 50% 0%`);
const isPaginating = !!getIssueLoader();
useIntersectionObserver(containerRef, isPaginating ? null : intersectionElement, loadMoreIssues, `50% 0% 50% 0%`);
const handleKeyBoardNavigation = useTableKeyboardNavigation();