From b8b5edb58188ee32ec61089f5a583e2c685f2cc7 Mon Sep 17 00:00:00 2001
From: mgabdev <>
Date: Wed, 5 Aug 2020 23:54:23 -0500
Subject: [PATCH] Updated GroupHeader, GroupInfoPanel
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
• Updated:
- GroupHeader, GroupInfoPanel
---
.../gabsocial/components/group_header.js | 192 ++++++++-----
.../components/panel/group_info_panel.js | 262 +++++++++++++-----
2 files changed, 314 insertions(+), 140 deletions(-)
diff --git a/app/javascript/gabsocial/components/group_header.js b/app/javascript/gabsocial/components/group_header.js
index 56d377a3..15902b60 100644
--- a/app/javascript/gabsocial/components/group_header.js
+++ b/app/javascript/gabsocial/components/group_header.js
@@ -12,13 +12,16 @@ import { me } from '../initial_state'
import Responsive from '../features/ui/util/responsive_component'
import Button from './button'
import Block from './block'
+import Heading from './heading'
import Image from './image'
+import Icon from './icon'
import TabBar from './tab_bar'
+import Pills from './pills'
import Text from './text'
const messages = defineMessages({
join: { id: 'groups.join', defaultMessage: 'Join group' },
- leave: { id: 'groups.leave', defaultMessage: 'Leave group' },
+ member: { id: 'groups.member', defaultMessage: 'Member' },
removed_accounts: { id: 'groups.removed_accounts', defaultMessage: 'Removed Accounts' },
group_archived: { id: 'group.detail.archived_group', defaultMessage: 'Archived group' },
group_admin: { id: 'groups.detail.role_admin', defaultMessage: 'You\'re an admin' }
@@ -54,6 +57,7 @@ class GroupHeader extends ImmutablePureComponent {
group: ImmutablePropTypes.map,
children: PropTypes.any,
intl: PropTypes.object.isRequired,
+ isXS: PropTypes.bool,
onToggleMembership: PropTypes.func.isRequired,
onOpenGroupOptions: PropTypes.func.isRequired,
relationships: ImmutablePropTypes.map,
@@ -79,35 +83,55 @@ class GroupHeader extends ImmutablePureComponent {
children,
group,
intl,
+ isXS,
relationships,
} = this.props
- const tabs = !group ? null : [
- {
- to: `/groups/${group.get('id')}`,
- title: 'Latest',
- },
- ]
-
const coverSrc = !!group ? group.get('cover_image_url') : ''
const coverSrcMissing = coverSrc.indexOf(PLACEHOLDER_MISSING_HEADER_SRC) > -1 || !coverSrc
const title = !!group ? group.get('title') : undefined
-
+ const slug = !!group ? !!group.get('slug') ? `g/${group.get('slug')}` : undefined : undefined
+
let isAdmin = false
let actionButtonTitle
let actionButtonOptions = {}
if (relationships) {
isAdmin = relationships.get('admin')
const isMember = relationships.get('member')
- actionButtonTitle = intl.formatMessage(!isMember ? messages.join : messages.leave)
- if (isMember) {
- actionButtonOptions = {
- backgroundColor: 'danger',
- color: 'white',
- }
+
+ actionButtonTitle = intl.formatMessage(isMember ? messages.member : messages.join)
+ actionButtonOptions = {
+ isOutline: !isMember,
+ backgroundColor: isMember ? 'brand' : 'none',
+ color: isMember ? 'white' : 'brand',
}
}
+ const tabs = !group ? [] : [
+ {
+ to: `/groups/${group.get('id')}`,
+ title: 'Timeline',
+ },
+ {
+ to: `/groups/${group.get('id')}/media`,
+ title: 'Media',
+ },
+ ]
+
+ if (isAdmin && group) {
+ tabs.push({
+ to: `/groups/${group.get('id')}/members`,
+ title: 'Members',
+ })
+ }
+
+ if (isXS && group) {
+ tabs.push({
+ to: `/groups/${group.get('id')}/about`,
+ title: 'About',
+ })
+ }
+
// : todo :
// {group.get('archived') &&