fix: stop endless data request when scrolling to bottom without login

This commit is contained in:
Hakadao
2023-10-22 15:51:07 +08:00
parent 6125b59dde
commit fc5945c95c
2 changed files with 19 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ const needToLoginFirst = ref<boolean>(false)
const containerRef = ref<HTMLElement>() as Ref<HTMLElement>
const offset = ref<string>('')
const updateBaseline = ref<string>('')
const noMoreContent = ref<boolean>(false)
onMounted(async () => {
for (let i = 0; i < 3; i++)
@@ -28,6 +29,9 @@ onUnmounted(() => {
})
async function getFollowedUsersVideos() {
if (noMoreContent.value)
return
isLoading.value = true
try {
const response = await browser.runtime.sendMessage({
@@ -37,6 +41,12 @@ async function getFollowedUsersVideos() {
updateBaseline: updateBaseline.value,
})
if (response.code === -101) {
noMoreContent.value = true
needToLoginFirst.value = true
return
}
if (response.code === 0) {
offset.value = response.data.offset
updateBaseline.value = response.data.update_baseline

View File

@@ -11,6 +11,7 @@ const isLoading = ref<boolean>(true)
const needToLoginFirst = ref<boolean>(false)
const containerRef = ref<HTMLElement>() as Ref<HTMLElement>
const refreshIdx = ref<number>(1)
const noMoreContent = ref<boolean>(false)
watch(() => settings.value.recommendationMode, (newValue) => {
videoList.length = 0
@@ -57,6 +58,9 @@ onUnmounted(() => {
})
async function getRecommendVideos() {
if (noMoreContent.value)
return
isLoading.value = true
try {
const response = await browser.runtime.sendMessage({
@@ -64,6 +68,11 @@ async function getRecommendVideos() {
refreshIdx: refreshIdx.value++,
})
if (!response.data) {
noMoreContent.value = true
return
}
if (response.code === 0) {
const resData = [] as ForYouVideoModel[]