|
|
@@ -144,6 +144,7 @@ const VideoSelectModal: React.FC<VideoSelectModalProps> = ({ visible, onClose, o
|
|
|
const loadingRef = useRef(false);
|
|
|
const currentPageRef = useRef(1);
|
|
|
const getVideoListRef = useRef<(pageNum: number, mode: LoadMode) => Promise<void>>();
|
|
|
+ const reqIdRef = useRef(0);
|
|
|
const MAX_SELECTION = 3;
|
|
|
|
|
|
useEffect(() => { hasMoreRef.current = hasMore; }, [hasMore]);
|
|
|
@@ -161,6 +162,7 @@ const VideoSelectModal: React.FC<VideoSelectModalProps> = ({ visible, onClose, o
|
|
|
}
|
|
|
setCurrentPage(pageNum);
|
|
|
|
|
|
+ const myReqId = reqIdRef.current;
|
|
|
const type = planType === WeComPlanType.社群 ? VideoSearchPlanType.企微社群 : VideoSearchPlanType.企微自动回复;
|
|
|
const requestParams = { category, title: searchTerm, sort, type, pageNum, pageSize: PAGE_SIZE, ...(source ? { source } : {}) };
|
|
|
|
|
|
@@ -174,6 +176,7 @@ const VideoSelectModal: React.FC<VideoSelectModalProps> = ({ visible, onClose, o
|
|
|
setLoading(false);
|
|
|
}
|
|
|
});
|
|
|
+ if (myReqId !== reqIdRef.current) return;
|
|
|
if (res && res.code === 0) {
|
|
|
const mapped = (res.data.objs || []).map(video => ({ ...video, scene: 0 as 0 | 1 }));
|
|
|
if (mode === 'append') {
|
|
|
@@ -266,6 +269,7 @@ const VideoSelectModal: React.FC<VideoSelectModalProps> = ({ visible, onClose, o
|
|
|
}, []);
|
|
|
|
|
|
const jumpToPage = (page: number) => {
|
|
|
+ reqIdRef.current++;
|
|
|
setHasMore(true);
|
|
|
setVideoList([]);
|
|
|
setPageAnchors(new Map());
|
|
|
@@ -276,7 +280,10 @@ const VideoSelectModal: React.FC<VideoSelectModalProps> = ({ visible, onClose, o
|
|
|
};
|
|
|
|
|
|
const handleSearch = () => {
|
|
|
+ reqIdRef.current++;
|
|
|
setHasMore(true);
|
|
|
+ setVideoList([]);
|
|
|
+ setTotal(0);
|
|
|
setViewingPage(1);
|
|
|
setPageAnchors(new Map());
|
|
|
passedPagesRef.current.clear();
|
|
|
@@ -284,6 +291,7 @@ const VideoSelectModal: React.FC<VideoSelectModalProps> = ({ visible, onClose, o
|
|
|
};
|
|
|
|
|
|
const handleChangeSource = (value: string) => {
|
|
|
+ reqIdRef.current++;
|
|
|
setSource(value);
|
|
|
setHasMore(true);
|
|
|
setVideoList([]);
|