move panels

This commit is contained in:
SrGooglo 2023-03-07 02:12:16 +00:00
parent dfeaf970d4
commit 75fd44e37a
3 changed files with 50 additions and 100 deletions

View File

@ -1,7 +1,7 @@
import React from "react" import React from "react"
import { Skeleton, Result } from "antd" import { Result } from "antd"
import Post from "models/post" import PostModel from "models/post"
import { PostsList } from "components" import { PostsList } from "components"
import { Icons } from "components/Icons" import { Icons } from "components/Icons"
@ -17,73 +17,16 @@ const emptyListRender = () => {
} }
export default class UserPosts extends React.Component { export default class UserPosts extends React.Component {
state = {
loading: true,
initialLoading: true,
hasMorePosts: true,
posts: [],
}
contentsRef = React.createRef()
loadData = async ({
trim,
replace = false
} = {}) => {
await this.setState({
loading: true,
})
const result = await Post.getUserPosts({
user_id: this.props.state.user._id,
trim: trim ?? this.state.posts.length,
})
console.log("Loaded data => \n", result)
if (result) {
if (result.length === 0) {
await this.setState({
hasMorePosts: false,
loading: false,
initialLoading: false,
})
return false
}
await this.setState({
posts: replace ? result : [...this.state.posts, ...result],
})
}
await this.setState({
loading: false,
})
if (this.state.initialLoading) {
await this.setState({
initialLoading: false,
})
}
}
componentDidMount() {
this.loadData()
}
render() { render() {
return <div className="userPosts"> return <div className="userPosts">
{ <PostsList
this.state.initialLoading ? <Skeleton active /> : <PostsList emptyListRender={emptyListRender}
loading={this.state.loading} onLoadMore={PostModel.getUserPosts}
hasMorePosts={this.state.hasMorePosts} loadFromModel={PostModel.getUserPosts}
emptyListRender={emptyListRender} loadFromModelProps={{
onLoadMore={this.loadData} user_id: this.props.state.user._id,
posts={this.state.posts} }}
ref={this.contentsRef} />
/>
}
</div> </div>
} }
} }

View File

@ -19,6 +19,7 @@ export default class Dashboard extends React.Component {
openPost: null, openPost: null,
} }
contentRef = React.createRef()
primaryPanelRef = React.createRef() primaryPanelRef = React.createRef()
renderActiveTab = () => { renderActiveTab = () => {
@ -32,6 +33,7 @@ export default class Dashboard extends React.Component {
return React.createElement(tab.component, { return React.createElement(tab.component, {
onOpenPost: this.onOpenPost, onOpenPost: this.onOpenPost,
ref: this.contentRef,
}) })
} }
@ -67,6 +69,40 @@ export default class Dashboard extends React.Component {
render() { render() {
return <div className="postingDashboard"> return <div className="postingDashboard">
<div className="panel left"> <div className="panel left">
<div className="card" id="trendings">
<div className="header">
<h2>
<Icons.TrendingUp />
<Translation>{(t) => t("Trendings")}</Translation>
</h2>
</div>
<HashtagTrendings />
</div>
<div className="card" id="onlineFriends">
<div className="header">
<h2>
<Icons.MdPeopleAlt />
<Translation>{(t) => t("Online Friends")}</Translation>
</h2>
</div>
<ConnectedFriends />
</div>
<FeaturedEventsAnnouncements />
</div>
<div
ref={this.primaryPanelRef}
className={classnames("panel", "full", "fade-opacity-active")}
>
{this.renderActiveTab()}
</div>
<div className="panel right">
<div className="card" id="browserType"> <div className="card" id="browserType">
<div className="header"> <div className="header">
<h1> <h1>
@ -103,39 +139,6 @@ export default class Dashboard extends React.Component {
</antd.Menu> </antd.Menu>
</div> </div>
</div> </div>
<div
ref={this.primaryPanelRef}
className={classnames("panel", "fade-opacity-active")}
>
{this.renderActiveTab()}
</div>
<div className="panel right">
<div className="card" id="trendings">
<div className="header">
<h2>
<Icons.TrendingUp />
<Translation>{(t) => t("Trendings")}</Translation>
</h2>
</div>
<HashtagTrendings />
</div>
<div className="card" id="onlineFriends">
<div className="header">
<h2>
<Icons.Rss />
<Translation>{(t) => t("Online Friends")}</Translation>
</h2>
</div>
<ConnectedFriends />
</div>
<FeaturedEventsAnnouncements />
</div>
</div> </div>
} }
} }

View File

@ -19,6 +19,10 @@
align-items: center; align-items: center;
&.full {
height: 100%;
}
&.left { &.left {
.card { .card {
background-color: var(--background-color-accent); background-color: var(--background-color-accent);