From 16876811a52157cbc7f45236b75068d5406e8e55 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Tue, 27 Jun 2023 00:11:36 +0000 Subject: [PATCH] added mobile style & layout --- .../app/src/components/UserCard/index.less | 11 ++ .../src/pages/account/[username].mobile.jsx | 8 + .../app/src/pages/account/index.mobile.jsx | 154 ++++++++++++++++++ .../app/src/pages/account/index.mobile.less | 10 ++ packages/app/src/pages/index.mobile.jsx | 19 --- 5 files changed, 183 insertions(+), 19 deletions(-) create mode 100755 packages/app/src/pages/account/[username].mobile.jsx create mode 100644 packages/app/src/pages/account/index.mobile.jsx create mode 100644 packages/app/src/pages/account/index.mobile.less diff --git a/packages/app/src/components/UserCard/index.less b/packages/app/src/components/UserCard/index.less index bdbaf428..1e63f609 100755 --- a/packages/app/src/components/UserCard/index.less +++ b/packages/app/src/components/UserCard/index.less @@ -1,3 +1,14 @@ +#root { + &.mobile { + .userCard { + width: 100%; + filter: none; + box-shadow: none; + min-width: 0; + } + } +} + .userCard { display: flex; flex-direction: column; diff --git a/packages/app/src/pages/account/[username].mobile.jsx b/packages/app/src/pages/account/[username].mobile.jsx new file mode 100755 index 00000000..99372b0a --- /dev/null +++ b/packages/app/src/pages/account/[username].mobile.jsx @@ -0,0 +1,8 @@ +import React from "react" +import Account from "./index.mobile" + +export default (props) => { + const username = props.params.username + + return +} \ No newline at end of file diff --git a/packages/app/src/pages/account/index.mobile.jsx b/packages/app/src/pages/account/index.mobile.jsx new file mode 100644 index 00000000..a5738c3f --- /dev/null +++ b/packages/app/src/pages/account/index.mobile.jsx @@ -0,0 +1,154 @@ +import React from "react" +import * as antd from "antd" +import classnames from "classnames" + +import { Translation } from "react-i18next" + +import { createIconRender, Icons } from "components/Icons" +import { Skeleton, FollowButton, UserCard } from "components" +import { SessionModel, UserModel, FollowsModel } from "models" +import { PagePanelWithNavMenu } from "components/PagePanels" + +import DetailsTab from "./tabs/details" +import PostsTab from "./tabs/posts" +import FollowersTab from "./tabs/followers" + +import "./index.mobile.less" + +const Tabs = [ + { + key: "posts", + icon: "BookOpen", + label: + {t => t("Posts")} + , + component: PostsTab, + }, + { + key: "followers", + icon: "Users", + label: + {t => t("Followers")} + , + component: FollowersTab, + }, + { + key: "details", + icon: "Info", + label: + {t => t("Details")} + , + component: DetailsTab, + } +] + +export default class Account extends React.Component { + state = { + requestedUser: null, + + user: null, + followers: [], + + isSelf: false, + isFollowed: false, + + tabActiveKey: "posts", + + isNotExistent: false, + } + + componentDidMount = async () => { + const token = await SessionModel.getDecodedToken() + const location = window.app.history.location + const query = new URLSearchParams(location.search) + + const requestedUser = this.props.username ?? location.state?.username ?? query.get("username") ?? token?.username + + let isSelf = false + let user = null + let isFollowed = false + let followers = [] + + if (requestedUser != null) { + if (token.username === requestedUser) { + isSelf = true + } + + user = await UserModel.data({ + username: requestedUser + }).catch((error) => { + console.error(error) + + return false + }) + + if (!user) { + this.setState({ + isNotExistent: true, + }) + + return false + } + + console.log(`Loaded User [${user.username}] >`, user) + + if (!isSelf) { + const followedResult = await FollowsModel.imFollowing(user._id).catch(() => false) + + if (followedResult) { + isFollowed = followedResult.isFollowed + } + } + + const followersResult = await FollowsModel.getFollowers(user._id).catch(() => false) + + if (followersResult) { + followers = followersResult + } + } + + await this.setState({ + isSelf, + user, + requestedUser, + isFollowed, + followers, + }) + } + + render() { + const { user } = this.state + + if (this.state.isNotExistent) { + return + + + } + + if (!user) { + return + } + + return
+ + + {/* */} +
+ } +} \ No newline at end of file diff --git a/packages/app/src/pages/account/index.mobile.less b/packages/app/src/pages/account/index.mobile.less new file mode 100644 index 00000000..ccd26813 --- /dev/null +++ b/packages/app/src/pages/account/index.mobile.less @@ -0,0 +1,10 @@ +._mobile_account-profile { + display: flex; + flex-direction: column; + + padding: 0 10px; + + width: 100%; + + +} \ No newline at end of file diff --git a/packages/app/src/pages/index.mobile.jsx b/packages/app/src/pages/index.mobile.jsx index 13b302c7..23280601 100644 --- a/packages/app/src/pages/index.mobile.jsx +++ b/packages/app/src/pages/index.mobile.jsx @@ -1,32 +1,13 @@ import React from "react" -import * as antd from "antd" -import { Translation } from "react-i18next" import { PagePanelWithNavMenu } from "components/PagePanels" -import { Icons } from "components/Icons" - import Tabs from "./home/tabs" export default class Home extends React.Component { render() { - const navMenuHeader = <> -

- - {(t) => t("Timeline")} -

- - - {(t) => t("Create")} - - - return