import React from "react" import * as antd from "antd" import { PostCard } from "components" import List from "rc-virtual-list" import "./index.less" export default class PostsFeed extends React.Component { state = { initialLoading: true, list: [], animating: false, } api = window.app.request listRef = React.createRef() componentDidMount = async () => { await this.loadPosts() window.app.ws.listen(`new.post`, async (data) => { this.onInsert(data) }) await this.setState({ initialLoading: false, }) } loadPosts = async ({ startIndex, stopIndex, } = {}) => { const result = await this.api.get.feed(undefined, { startIndex, stopIndex, feedLength: this.props.feedLength, user_id: this.props.fromUserId, }) console.log(result) if (result) { this.setState({ list: result }) } } onAppear = (...args) => { console.log('Appear:', args) this.setState({ animating: false }) } lockForAnimation = () => { this.setState({ animating: true }) } onInsert = async (data) => { const updatedList = this.state.list updatedList.unshift(data) await this.setState({ list: updatedList, }) this.lockForAnimation() } render() { if (this.state.initialLoading) { return } if (this.state.list.length === 0) { return } return
{(item, index) => ( )}
} }