mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 12:22:25 -05:00
[frontend] Profiles with fields & more (#1764)
* redesign status template
* separate index page styling
* redesign profile template
* fix header styling/wrapping
* remove old spoiler js
* fix status cw button wrapping
* fix status info variables
* profile responsiveness, accessibility tweaks
* fix variable use, mobile
* remove duplicate id's
* rss icon, fix indent
* fix toot border-radius
* fix toot spacing
* emojify and html profile fields
* refactor (sensitive) media rendering
* plaintext profile fields
* bundle plyr icon svg
* only pause video when switching photoswipe slides
* yarn upgrade
* profile fields formatting
* replace uglifyify with @browserify updated fork
* fix profile field templating (yet again)
* fix React classes
* testrig: add testing profile field for admin user
* fix sensitive media interactions
* Revert "testrig: add testing profile field for admin user"
This reverts commit 80490c183e.
* settings interface wrapping
* fix reported toot styling
* add role to profile sr-only text
* comment fallback rule
* remove currently unused image description lacking indicator
This commit is contained in:
parent
6392e00653
commit
9cc9ffc5a7
21 changed files with 1754 additions and 1382 deletions
|
|
@ -140,13 +140,18 @@ function ReportedToot({ toot }) {
|
|||
const account = toot.account;
|
||||
|
||||
return (
|
||||
<div className="toot expanded">
|
||||
<div className="contentgrid">
|
||||
<span className="avatar">
|
||||
<img src={account.avatar} alt="" />
|
||||
</span>
|
||||
<span className="displayname">{account.display_name.trim().length > 0 ? account.display_name : account.username}</span>
|
||||
<span className="username">@{account.username}</span>
|
||||
<article className="toot expanded">
|
||||
<section className="author">
|
||||
<a>
|
||||
<img className="avatar" src={account.avatar} alt="" />
|
||||
<span className="displayname">
|
||||
{account.display_name.trim().length > 0 ? account.display_name : account.username}
|
||||
<span className="sr-only">.</span>
|
||||
</span>
|
||||
<span className="username">@{account.username}</span>
|
||||
</a>
|
||||
</section>
|
||||
<section className="body">
|
||||
<div className="text">
|
||||
<div className="content">
|
||||
{toot.spoiler_text?.length > 0
|
||||
|
|
@ -158,15 +163,11 @@ function ReportedToot({ toot }) {
|
|||
{toot.media_attachments?.length > 0 &&
|
||||
<TootMedia media={toot.media_attachments} sensitive={toot.sensitive} />
|
||||
}
|
||||
</div>
|
||||
<div className="toot-info">
|
||||
<a
|
||||
href={toot.url}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>{new Date(toot.created_at).toLocaleString()}</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<aside className="info">
|
||||
<time datetime={toot.created_at}>{new Date(toot.created_at).toLocaleString()}</time>
|
||||
</aside>
|
||||
</article>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,17 +24,23 @@ const React = require("react");
|
|||
module.exports = function FakeProfile({ avatar, header, display_name, username, role }) {
|
||||
return ( // Keep in sync with web/template/profile.tmpl
|
||||
<div className="profile">
|
||||
<div className="headerimage">
|
||||
<img className="headerpreview" src={header} alt={header ? `header image for ${username}` : "None set"} />
|
||||
</div>
|
||||
<div className="basic">
|
||||
<div id="profile-basic-filler2"></div>
|
||||
<span className="avatar"><img className="avatarpreview" src={avatar} alt={avatar ? `avatar image for ${username}` : "None set"} /></span>
|
||||
<div className="displayname">{display_name.trim().length > 0 ? display_name : username}</div>
|
||||
<div className="usernamecontainer">
|
||||
<div className="username"><span>@{username}</span></div>
|
||||
<div className="header">
|
||||
<div className="header-image">
|
||||
<img src={header} alt={header ? `header image for ${username}` : "None set"} />
|
||||
</div>
|
||||
<div className="basic-info" aria-hidden="true">
|
||||
<a className="avatar" href="{{.account.Avatar}}">
|
||||
<img src={avatar} alt={avatar ? `avatar image for ${username}` : "None set"} />
|
||||
</a>
|
||||
<span className="displayname text-cutoff">
|
||||
{display_name.trim().length > 0 ? display_name : username}
|
||||
<span className="sr-only">.</span>
|
||||
</span>
|
||||
<span className="username text-cutoff">@{username}</span>
|
||||
{(role && role != "user") &&
|
||||
<div className={`role ${role}`}>{role}</div>
|
||||
<div className={`role ${role}`}>
|
||||
<span className="sr-only">Role: </span>{role}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -31,19 +31,22 @@ module.exports = function FakeToot({ children }) {
|
|||
} } = query.useVerifyCredentialsQuery();
|
||||
|
||||
return (
|
||||
<div className="toot expanded">
|
||||
<div className="contentgrid">
|
||||
<span className="avatar">
|
||||
<img src={account.avatar} alt="" />
|
||||
</span>
|
||||
<span className="displayname">{account.display_name.trim().length > 0 ? account.display_name : account.username}</span>
|
||||
<span className="username">@{account.username}</span>
|
||||
<article className="toot expanded">
|
||||
<section className="author">
|
||||
<a>
|
||||
<img className="avatar" src={account.avatar} alt="" />
|
||||
<span className="displayname">
|
||||
{account.display_name.trim().length > 0 ? account.display_name : account.username}
|
||||
<span className="sr-only">.</span>
|
||||
</span>
|
||||
<span className="username">@{account.username}</span>
|
||||
</a>
|
||||
</section>
|
||||
<section className="body">
|
||||
<div className="text">
|
||||
<div className="content">
|
||||
{children}
|
||||
</div>
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
);
|
||||
};
|
||||
|
|
@ -16,11 +16,6 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* Fork-Awesome 'fa-fw' fixed icon width
|
||||
keep in sync with https://github.com/ForkAwesome/Fork-Awesome/blob/a99579ae3e735ee70e51ed62dfcee3172b5b2db7/css/fork-awesome.css#L50
|
||||
*/
|
||||
$fa-fw: 1.28571429em;
|
||||
|
||||
body {
|
||||
grid-template-rows: auto 1fr;
|
||||
}
|
||||
|
|
@ -30,10 +25,6 @@ body {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
section {
|
||||
grid-column: 2;
|
||||
}
|
||||
|
||||
header {
|
||||
justify-content: start;
|
||||
|
||||
|
|
@ -51,19 +42,26 @@ header {
|
|||
}
|
||||
}
|
||||
|
||||
main section {
|
||||
box-shadow: none;
|
||||
border-radius: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#root {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr minmax(auto, 60rem) 1fr;
|
||||
grid-template-columns: 1fr min(92%, 60rem) 1fr;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
margin: 0 1rem;
|
||||
gap: 1rem;
|
||||
|
||||
section.oauth {
|
||||
max-width: 92%;
|
||||
width: 60rem;
|
||||
}
|
||||
|
||||
section.with-sidebar {
|
||||
flex-grow: 100;
|
||||
flex-basis: 40rem;
|
||||
background: $bg-accent;
|
||||
padding: 2rem;
|
||||
border-radius: $br;
|
||||
|
||||
& > div, & > form {
|
||||
border-left: 0.2rem solid $border-accent;
|
||||
padding-left: 0.4rem;
|
||||
|
|
@ -97,13 +95,13 @@ main section {
|
|||
}
|
||||
|
||||
.sidebar {
|
||||
margin: 0 1rem;
|
||||
flex-grow: 1;
|
||||
flex-basis: 20rem;
|
||||
align-self: start;
|
||||
justify-self: end;
|
||||
background: $bg;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 12rem;
|
||||
|
||||
.account-card {
|
||||
grid-template-columns: auto 1fr auto;
|
||||
|
|
@ -240,10 +238,6 @@ nav.menu-tree {
|
|||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
section {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
|
@ -406,9 +400,10 @@ section.with-sidebar > div, section.with-sidebar > form {
|
|||
gap: 1rem;
|
||||
|
||||
.profile {
|
||||
.basic {
|
||||
margin-bottom: 0.5rem;
|
||||
/* margin-top: 0; */
|
||||
padding: 0;
|
||||
|
||||
.header {
|
||||
border: 0.1rem solid $gray1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue