<template>
|
<InfiniteLoading
|
scrollViewClassName="friend-circle-list"
|
v-bind="infiniteLoadingProps"
|
ref="infiniteLoadingRef"
|
noMoreText="我是有底线的"
|
>
|
<template #renderItem="{ item, groupIndex, itemIndex }">
|
<FriendMessage
|
:key="item.id"
|
:groupIndex="groupIndex"
|
:itemIndex="itemIndex"
|
:data="item"
|
:listActions="listActions"
|
></FriendMessage>
|
</template>
|
</InfiniteLoading>
|
</template>
|
|
<script setup lang="ts">
|
import { useInfiniteLoading } from '@12333/hooks';
|
import { InfiniteLoading, FloatButton } from '@/components';
|
import * as circleFriendServices from '@12333/services/api/CircleFriend';
|
import { OrderInputType } from '@12333/constants';
|
import Taro from '@tarojs/taro';
|
import FriendMessage from '../FriendMessage/FriendMessage.vue';
|
|
defineOptions({
|
name: 'FriendView',
|
});
|
|
type Props = {
|
showPublishButton?: boolean;
|
userId?: string;
|
};
|
|
const props = withDefaults(defineProps<Props>(), {
|
userId: '',
|
});
|
|
const friendSwitch = true;
|
|
const { infiniteLoadingProps, infiniteLoadingRef, listActions } = useInfiniteLoading(
|
({ pageParam }) => {
|
let params: API.GetCircleFriendListInput = {
|
pageModel: {
|
rows: 20,
|
page: pageParam,
|
orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
|
},
|
userId: props.userId,
|
};
|
|
return circleFriendServices.getCircleFriendList(params, { showLoading: false });
|
},
|
{
|
queryKey: ['circleFriendServices/getCircleFriendList', { userId: props.userId }],
|
}
|
);
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
|
.friend-circle-list {
|
@include listScrollViewWithNoPadding;
|
@include infiniteLoadingInTabBarPage;
|
}
|
</style>
|