diff --git a/src/contentScripts/views/Favorites/Favorites.vue b/src/contentScripts/views/Favorites/Favorites.vue index 427feb03..d98c7c6b 100644 --- a/src/contentScripts/views/Favorites/Favorites.vue +++ b/src/contentScripts/views/Favorites/Favorites.vue @@ -11,11 +11,13 @@ const favoriteResources = reactive>([]) const categoryOptions = reactive>([]) const selectedCategory = ref() +const activatedCategoryCover = ref('') const currentPageNum = ref(1) const keyword = ref('') const isLoading = ref(true) +const isFullPageLoading = ref(false) const noMoreContent = ref() onMounted(async () => { @@ -63,40 +65,44 @@ async function getFavoriteCategories() { * @param pageNum * @param keyword */ -function getFavoriteResources( +async function getFavoriteResources( mediaId: number, pageNum: number, keyword = '' as string, ) { + if (pageNum === 1) + isFullPageLoading.value = true isLoading.value = true - browser.runtime - .sendMessage({ - contentScriptQuery: 'getFavoriteResources', - mediaId, - pageNum, - keyword, - }) - .then((res) => { - if (res.code === 0) { - if (Array.isArray(res.data.medias) && res.data.medias.length > 0) - favoriteResources.push(...res.data.medias) + try { + const res = await browser.runtime + .sendMessage({ + contentScriptQuery: 'getFavoriteResources', + mediaId, + pageNum, + keyword, + }) - if ( - res.data.medias === null - || (res.data.medias.length < 20 && favoriteResources.length > 0) - ) { - isLoading.value = false - noMoreContent.value = true - return - } + if (res.code === 0) { + activatedCategoryCover.value = res.data.info.cover - noMoreContent.value = false - } - isLoading.value = false - }) + if (Array.isArray(res.data.medias) && res.data.medias.length > 0) + favoriteResources.push(...res.data.medias) + + if ( + res.data.medias === null + || (res.data.medias.length < 20 && favoriteResources.length > 0) + ) + noMoreContent.value = true + } + } + finally { + isLoading.value = false + isFullPageLoading.value = false + noMoreContent.value = false + } } -function changeCategory(categoryItem: FavoriteCategory) { +async function changeCategory(categoryItem: FavoriteCategory) { currentPageNum.value = 1 selectedCategory.value = categoryItem @@ -144,27 +150,32 @@ function jumpToLoginPage() {