From a16e709ff4d5a93946732b32aaea98edfb3fcc4e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 31 Dec 2020 17:20:46 -0600 Subject: [PATCH] Reports: break out separate Report component, basic styling --- .../intersection_observer_article.js | 1 + .../features/admin/awaiting_approval.js | 2 +- .../features/admin/components/report.js | 36 +++++++++++++++++++ app/soapbox/features/admin/reports.js | 15 ++++---- app/styles/components/admin.scss | 32 +++++++++++++---- 5 files changed, 71 insertions(+), 15 deletions(-) create mode 100644 app/soapbox/features/admin/components/report.js diff --git a/app/soapbox/components/intersection_observer_article.js b/app/soapbox/components/intersection_observer_article.js index d21ea2565..12ebe20a2 100644 --- a/app/soapbox/components/intersection_observer_article.js +++ b/app/soapbox/components/intersection_observer_article.js @@ -24,6 +24,7 @@ export default class IntersectionObserverArticle extends React.Component { state = { isHidden: false, // set to true in requestIdleCallback to trigger un-render + isIntersecting: true, } shouldComponentUpdate(nextProps, nextState) { diff --git a/app/soapbox/features/admin/awaiting_approval.js b/app/soapbox/features/admin/awaiting_approval.js index 5d74435ae..7706eb4a8 100644 --- a/app/soapbox/features/admin/awaiting_approval.js +++ b/app/soapbox/features/admin/awaiting_approval.js @@ -77,7 +77,7 @@ class AwaitingApproval extends ImmutablePureComponent {
@{user.get('nickname')}
-
{user.get('registration_reason')}
+
{user.get('registration_reason')}
diff --git a/app/soapbox/features/admin/components/report.js b/app/soapbox/features/admin/components/report.js new file mode 100644 index 000000000..0365e3cf2 --- /dev/null +++ b/app/soapbox/features/admin/components/report.js @@ -0,0 +1,36 @@ +import React from 'react'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { FormattedMessage } from 'react-intl'; +import Avatar from 'soapbox/components/avatar'; + +export default class Report extends ImmutablePureComponent { + + static propTypes = { + report: ImmutablePropTypes.map.isRequired, + }; + + render() { + const { report } = this.props; + + return ( +
+ +
+

+ +

+
+
{report.get('content')}
+ — @{report.getIn(['actor', 'acct'])} +
+
+
+ ); + } + +} diff --git a/app/soapbox/features/admin/reports.js b/app/soapbox/features/admin/reports.js index a277eae63..1acc6def1 100644 --- a/app/soapbox/features/admin/reports.js +++ b/app/soapbox/features/admin/reports.js @@ -7,6 +7,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import Column from '../ui/components/column'; import ScrollableList from 'soapbox/components/scrollable_list'; import { fetchReports } from 'soapbox/actions/admin'; +import Report from './components/report'; const messages = defineMessages({ heading: { id: 'column.admin.reports', defaultMessage: 'Reports' }, @@ -47,13 +48,13 @@ class Reports extends ImmutablePureComponent { return ( - - {reports.map(report => ( -
-
Report on @{report.getIn(['account', 'acct'])}
-
{report.get('content')} — @{report.getIn(['actor', 'acct'])}
-
- ))} + + {reports.map(report => )}
); diff --git a/app/styles/components/admin.scss b/app/styles/components/admin.scss index 4c25eab4d..4942144b6 100644 --- a/app/styles/components/admin.scss +++ b/app/styles/components/admin.scss @@ -77,12 +77,6 @@ font-weight: bold; } - &__reason { - padding: 5px 0 5px 15px; - border-left: 3px solid hsla(var(--primary-text-color_hsl), 0.4); - color: var(--primary-text-color--faint); - } - &__actions { margin-left: auto; display: flex; @@ -118,8 +112,32 @@ } } } + + blockquote.md { + padding: 5px 0 5px 15px; + border-left: 3px solid hsla(var(--primary-text-color_hsl), 0.4); + color: var(--primary-text-color--faint); + } } .admin-report { - padding: 20px; + padding: 15px; + display: flex; + border-bottom: 1px solid var(--brand-color--faint); + + &__content { + padding-left: 16px; + } + + &__title { + font-weight: bold; + } + + &__quote { + font-size: 14px; + + .byline { + font-size: 12px; + } + } }