diff --git a/app/found/page.js b/app/found/page.js index 3f23271..7ac5da8 100644 --- a/app/found/page.js +++ b/app/found/page.js @@ -39,7 +39,7 @@ export default function Found() { const [activeIndex, setActiveIndex] = useState(0); const [account, setAccount] = useState(null); const [scrollHeight, setScrollHeight] = useState(0); - + const [loading, setLoading] = useState(false); // useEffect(() => { // const info = get("account"); // console.log("info",info) @@ -48,11 +48,14 @@ export default function Found() { // } // }, [] // ) - const childrenFunc = () => { + const childrenFunc = async () => { + setLoading(true); if (!activeIndex) { - recommPostRef.current?.doRefresh(); + await recommPostRef.current?.doRefresh(); + setLoading(false); } else { - followPostRef.current?.doRefresh(); + await followPostRef.current?.doRefresh(); + setLoading(false); } }; useEffect(() => { @@ -119,7 +122,9 @@ export default function Found() {
{ const intervalId = setInterval(() => { + // debugger; // console.log("oldMessages[0]", oldMessages[0]); - if (oldMessages[0]) { - updateMessages(oldMessages[0]?.id, 0, oldMessages); + if (oldMessages.list[0]) { + updateMessages(oldMessages.list[0]?.id, 0, oldMessages.list); // toScrollBottom.current = 1; } }, 3000); // 间隔时间为3秒 @@ -71,13 +76,14 @@ export default function MessageDetail({}) { return () => { clearInterval(intervalId); }; - }, [oldMessages]); + }, [oldMessages.list]); useEffect(() => { - if (toScrollBottom.current) { + // debugger; + if (toScrollBottom.current && !oldMessages.isGetHistory) { scrollBox.current?.scrollTo(0, scrollBox.current.scrollHeight + 50); toScrollBottom.current = 0; } - }, [messages]); + }, [oldMessages.list, oldMessages.isGetHistory]); useEffect(() => { if (sessionId && userInfo.mid) { loadEarlierHistory().then((res) => { @@ -190,7 +196,10 @@ export default function MessageDetail({}) { } setOffset(data.data.offset); setMore(data.data.more); - let mathNewMessages = handleData([...oldMessages, ...data.data.list]); + let mathNewMessages = handleData( + [...oldMessages.list, ...data.data.list], + oldMessages.list.length > 0 + ); // setMessages((prev) => [...prev, ...temMessages]); setLoading(false); return mathNewMessages; @@ -212,6 +221,7 @@ export default function MessageDetail({}) { //查询历史记录的时候后移一位,防止记录重复 setOffset((prev) => prev + 1); //请求接口发送私信 + setSendding(true); try { const data = await requireAPI( "POST", @@ -224,6 +234,7 @@ export default function MessageDetail({}) { }, } ); + setSendding(false); if (data.ret === -1) { Toast.show({ icon: "error", @@ -240,6 +251,7 @@ export default function MessageDetail({}) { }); } catch (error) { // console.error(error); + setSendding(false); } // //每次发送都缓存信息到本地 // addArr(`${selfData.mid}_to_${params.mid}_messages`, messages); @@ -265,7 +277,7 @@ export default function MessageDetail({}) { } } - const handleData = (list) => { + const handleData = (list, isGetHistory) => { // console.log("list", list); const account = get("account"); const temMessages = list.map((item) => { @@ -293,7 +305,9 @@ export default function MessageDetail({}) { user: { _id: 0, name: "客服", - avatar: process.env.NEXT_PUBLIC_WEB_ASSETS_URL + "/images/icon.png", + avatar: + process.env.NEXT_PUBLIC_WEB_ASSETS_URL + + "/images/icon_border.png", }, }; } @@ -301,7 +315,16 @@ export default function MessageDetail({}) { // console.log("handledmessages......", handledmessages); // console.log("[...messages, ...temMessages]", temMessages); setHandledmessages(temMessages); - setOldMessages(list); + setOldMessages((old) => { + // debugger; + if (old.list.length === list.length) { + return old; + } else { + // debugger; + return { list, isGetHistory: !!isGetHistory }; + } + }); + let newMessages = temMessages.reverse(); let mathNewMessages = newMessages.reduce( (accumulator, currentValue, index, sourceArray) => { @@ -415,11 +438,16 @@ export default function MessageDetail({}) {

触发按钮:

    - {btns.map((item) => { + {btns.map((item, index) => { return (
  • { - onSend(item, oldMessages[0]?.id || -1, oldMessages); + onSend( + item, + oldMessages[0]?.id || -1, + oldMessages.list + ); }} className="bg-[#3333331A] rounded text-center px-4 py-1" > @@ -436,7 +464,7 @@ export default function MessageDetail({}) { } // data.m_type===1?it?.text.split("|")it?.text }, - [sessionId] + [sessionId, oldMessages.list] ); return (
    @@ -549,9 +577,22 @@ export default function MessageDetail({}) {

- {data?.recent_contact_cs_msg || "暂无新消息"} + {(data?.recent_contact_cs_msg?.includes("|") + ? data?.recent_contact_cs_msg?.split("|")[0] + : data?.recent_contact_cs_msg) || "暂无新消息"}

diff --git a/app/space/page.js b/app/space/page.js index 96ddee3..264c67e 100644 --- a/app/space/page.js +++ b/app/space/page.js @@ -321,6 +321,8 @@ const SpacesList = forwardRef(({ scrollHeight }, ref) => { hasMore={hasMore} isEmpty={spacesList.length == 0} showNoMore={spacesList.length === 0} + zoneEmpty={true} + type="nospace" />
@@ -434,7 +436,12 @@ const SpacePostList = forwardRef(({ scrollHeight }, ref) => { )} {spacePostList?.map((item, index) => ( - + ))} {!spacePostList?.length && ( @@ -442,7 +449,7 @@ const SpacePostList = forwardRef(({ scrollHeight }, ref) => { className={`flex flex-col items-center justify-center h-screen`} style={{ height: `calc(100vh - 133px)` }} > - + )} diff --git a/components/InfiniteScrollContent/index.jsx b/components/InfiniteScrollContent/index.jsx index 179ea64..a5dfcbe 100644 --- a/components/InfiniteScrollContent/index.jsx +++ b/components/InfiniteScrollContent/index.jsx @@ -8,6 +8,8 @@ export default function InfiniteScrollContent({ hasMore = 0, isEmpty, showNoMore = true, + zoneEmpty = false, + type = "nodata", }) { const router = useRouter(); return ( @@ -24,21 +26,23 @@ export default function InfiniteScrollContent({ className={`flex flex-col items-center mt-28`} // style={{ height: `${scrollHeight}px` }} > - -
-

router.push("/search")} - className="text-base font-medium flex items-center justify-center bg-[#FFFFFF1A] mt-2 rounded-full w-[190px] h-[46px]" - > - 搜索空间 -

-

router.push("/found")} - className="text-base font-medium flex items-center justify-center bg-[#FFFFFF1A] mt-2 rounded-full w-[190px] h-[46px]" - > - 查看推荐 -

-
+ + {zoneEmpty && ( +
+

router.push("/search")} + className="text-base font-medium flex items-center justify-center bg-[#FFFFFF1A] mt-2 rounded-full w-[190px] h-[46px]" + > + 搜索空间 +

+

router.push("/found")} + className="text-base font-medium flex items-center justify-center bg-[#FFFFFF1A] mt-2 rounded-full w-[190px] h-[46px]" + > + 查看推荐 +

+
+ )} )}