56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
import { defineStore } from 'pinia';
|
|
import { ref, computed, nextTick } from 'vue';
|
|
import { a as useConfigStore } from './server.mjs';
|
|
import { a as getUserPosts } from './media-B5mop_Ew.mjs';
|
|
|
|
const useUserPostStore = defineStore("userPosts", () => {
|
|
const posts = ref([]);
|
|
const endPage = ref(false);
|
|
const config = useConfigStore();
|
|
const loading2 = ref(false);
|
|
const currentPage = ref(0);
|
|
const limit = ref(15);
|
|
const total = ref(0);
|
|
computed(() => config.sellerConfig?.store);
|
|
async function loadPosts(userId, page) {
|
|
try {
|
|
loading2.value = true;
|
|
await nextTick();
|
|
const res = await getUserPosts(userId, page, limit.value);
|
|
loading2.value = false;
|
|
return res;
|
|
} catch (e) {
|
|
console.log(e);
|
|
} finally {
|
|
loading2.value = false;
|
|
}
|
|
}
|
|
function loadStateNextPage(res) {
|
|
posts.value.push(...res?.data ?? []);
|
|
total.value = res?.count ?? 0;
|
|
currentPage.value++;
|
|
if (posts.value.length >= total.value) {
|
|
endPage.value = true;
|
|
}
|
|
}
|
|
function reset() {
|
|
currentPage.value = 0;
|
|
posts.value = [];
|
|
total.value = 0;
|
|
endPage.value = false;
|
|
}
|
|
return {
|
|
loadPosts,
|
|
posts,
|
|
reset,
|
|
loadStateNextPage,
|
|
endPage,
|
|
currentPage,
|
|
limit,
|
|
loading: loading2
|
|
};
|
|
});
|
|
|
|
export { useUserPostStore as u };
|
|
//# sourceMappingURL=userPostsStore-6qqHC3AK.mjs.map
|