mirror of
https://github.com/zhigang1992/devhub.git
synced 2026-06-18 03:58:44 +08:00
Fix showAvatarAsIcon
This commit is contained in:
@@ -25,19 +25,20 @@ import { UserConsumer } from '../context/UserContext'
|
||||
export const columnHeaderItemContentSize = 20
|
||||
|
||||
export interface ColumnHeaderItemProps {
|
||||
avatarDetails?: {
|
||||
owner: string
|
||||
repo?: string
|
||||
}
|
||||
avatarShape?: AvatarProps['shape']
|
||||
avatarStyle?: StyleProp<ImageStyle>
|
||||
iconName?: GithubIcon
|
||||
iconStyle?: StyleProp<TextStyle>
|
||||
onPress?: () => void
|
||||
repo?: string
|
||||
showAvatarAsIcon?: boolean
|
||||
style?: StyleProp<ViewStyle>
|
||||
subtitle?: string
|
||||
subtitleStyle?: StyleProp<TextStyle>
|
||||
title?: string
|
||||
titleStyle?: StyleProp<TextStyle>
|
||||
username?: string
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
@@ -80,24 +81,26 @@ export class ColumnHeaderItem extends PureComponent<ColumnHeaderItemProps> {
|
||||
|
||||
render() {
|
||||
const {
|
||||
avatarDetails,
|
||||
avatarShape,
|
||||
avatarStyle,
|
||||
iconName,
|
||||
iconStyle,
|
||||
repo,
|
||||
showAvatarAsIcon,
|
||||
subtitle,
|
||||
subtitleStyle,
|
||||
title,
|
||||
titleStyle,
|
||||
username: _username,
|
||||
} = this.props
|
||||
|
||||
return (
|
||||
<UserConsumer>
|
||||
{({ user }) => {
|
||||
const username =
|
||||
user && user.login === _username ? undefined : _username
|
||||
avatarDetails &&
|
||||
avatarDetails.owner &&
|
||||
!(user && user.login === avatarDetails.owner)
|
||||
? avatarDetails.owner
|
||||
: undefined
|
||||
|
||||
const smallAvatarSpacing = 5
|
||||
|
||||
@@ -106,7 +109,7 @@ export class ColumnHeaderItem extends PureComponent<ColumnHeaderItemProps> {
|
||||
{({ theme }) => (
|
||||
<ConditionalWrap condition wrap={this.wrap}>
|
||||
<>
|
||||
{(!!iconName || (showAvatarAsIcon && !!username)) && (
|
||||
{(!!iconName || !!username) && (
|
||||
<View
|
||||
style={{
|
||||
position: 'relative',
|
||||
@@ -115,10 +118,7 @@ export class ColumnHeaderItem extends PureComponent<ColumnHeaderItemProps> {
|
||||
justifyContent: 'center',
|
||||
marginRight:
|
||||
title || subtitle
|
||||
? 8 +
|
||||
(showAvatarAsIcon && username
|
||||
? smallAvatarSpacing
|
||||
: 0)
|
||||
? 8 + (username ? smallAvatarSpacing : 0)
|
||||
: 0,
|
||||
}}
|
||||
>
|
||||
@@ -130,46 +130,44 @@ export class ColumnHeaderItem extends PureComponent<ColumnHeaderItemProps> {
|
||||
style={[styles.icon, iconStyle]}
|
||||
/>
|
||||
|
||||
{showAvatarAsIcon &&
|
||||
!!username && (
|
||||
<Avatar
|
||||
hitSlop={{
|
||||
top:
|
||||
columnHeaderItemContentSize +
|
||||
smallAvatarSpacing,
|
||||
bottom: smallAvatarSpacing,
|
||||
left:
|
||||
columnHeaderItemContentSize / 2 +
|
||||
smallAvatarSpacing,
|
||||
right:
|
||||
columnHeaderItemContentSize / 2 +
|
||||
smallAvatarSpacing,
|
||||
}}
|
||||
isBot={false}
|
||||
linkURL=""
|
||||
repo={repo}
|
||||
shape={avatarShape}
|
||||
style={[
|
||||
{
|
||||
position: 'absolute',
|
||||
bottom: 0,
|
||||
marginLeft: smallAvatarSpacing,
|
||||
width: 10,
|
||||
height: 10,
|
||||
},
|
||||
avatarStyle,
|
||||
]}
|
||||
username={username}
|
||||
/>
|
||||
)}
|
||||
{!!username && (
|
||||
<Avatar
|
||||
hitSlop={{
|
||||
top:
|
||||
columnHeaderItemContentSize +
|
||||
smallAvatarSpacing,
|
||||
bottom: smallAvatarSpacing,
|
||||
left:
|
||||
columnHeaderItemContentSize / 2 +
|
||||
smallAvatarSpacing,
|
||||
right:
|
||||
columnHeaderItemContentSize / 2 +
|
||||
smallAvatarSpacing,
|
||||
}}
|
||||
isBot={false}
|
||||
linkURL=""
|
||||
repo={avatarDetails && avatarDetails.repo}
|
||||
shape={avatarShape}
|
||||
style={[
|
||||
{
|
||||
position: 'absolute',
|
||||
bottom: 0,
|
||||
marginLeft: smallAvatarSpacing,
|
||||
width: 10,
|
||||
height: 10,
|
||||
},
|
||||
avatarStyle,
|
||||
]}
|
||||
username={username}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
showAvatarAsIcon &&
|
||||
!!username && (
|
||||
<Avatar
|
||||
isBot={false}
|
||||
linkURL=""
|
||||
repo={repo}
|
||||
repo={avatarDetails && avatarDetails.repo}
|
||||
shape={avatarShape}
|
||||
style={[
|
||||
{
|
||||
|
||||
@@ -5,7 +5,6 @@ import EventCardsContainer, {
|
||||
EventCardsContainerProps,
|
||||
} from '../../containers/EventCardsContainer'
|
||||
import { getColumnHeaderDetails } from '../../utils/helpers/github/events'
|
||||
import { getOwnerAndRepo } from '../../utils/helpers/github/shared'
|
||||
import CardItemSeparator from '../cards/partials/CardItemSeparator'
|
||||
import Column from './Column'
|
||||
import { ColumnHeader } from './ColumnHeader'
|
||||
@@ -32,28 +31,15 @@ export default class EventColumn extends PureComponent<
|
||||
<Column>
|
||||
<ColumnHeader>
|
||||
<ColumnHeaderItem
|
||||
avatarDetails={requestTypeIconAndData.avatarDetails}
|
||||
iconName={requestTypeIconAndData.icon}
|
||||
repo={
|
||||
'username' in column.params
|
||||
? getOwnerAndRepo(column.params.username).repo
|
||||
: undefined
|
||||
}
|
||||
showAvatarAsIcon={requestTypeIconAndData.showAvatarAsIcon}
|
||||
subtitle={requestTypeIconAndData.subtitle}
|
||||
title={requestTypeIconAndData.title}
|
||||
username={
|
||||
'username' in column.params
|
||||
? getOwnerAndRepo(column.params.username).owner
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
<FlexSeparator />
|
||||
<ColumnHeaderItem
|
||||
iconName="chevron-down"
|
||||
onPress={this.handlePress}
|
||||
username={
|
||||
'username' in column.params ? column.params.username : undefined
|
||||
}
|
||||
/>
|
||||
</ColumnHeader>
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import {
|
||||
import { NavigationScreenProps } from 'react-navigation'
|
||||
|
||||
import { getColumnHeaderDetails } from '../../utils/helpers/github/events'
|
||||
import { getOwnerAndRepo } from '../../utils/helpers/github/shared'
|
||||
import { columnHeaderHeight } from '../columns/ColumnHeader'
|
||||
import { ColumnHeaderItem } from '../columns/ColumnHeaderItem'
|
||||
import Avatar from '../common/Avatar'
|
||||
@@ -95,16 +94,10 @@ class LeftSidebarComponent extends PureComponent<
|
||||
]}
|
||||
>
|
||||
<ColumnHeaderItem
|
||||
avatarDetails={
|
||||
requestTypeIconAndData.avatarDetails
|
||||
}
|
||||
iconName={requestTypeIconAndData.icon}
|
||||
showAvatarAsIcon={
|
||||
requestTypeIconAndData.showAvatarAsIcon
|
||||
}
|
||||
username={
|
||||
'username' in column.params
|
||||
? getOwnerAndRepo(column.params.username)
|
||||
.owner
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
</View>
|
||||
)
|
||||
|
||||
@@ -22,8 +22,11 @@ import {
|
||||
export function getColumnHeaderDetails(
|
||||
column: Column,
|
||||
): {
|
||||
avatarDetails?: {
|
||||
owner: string
|
||||
repo?: string
|
||||
}
|
||||
icon: GithubIcon
|
||||
showAvatarAsIcon?: boolean
|
||||
subtitle?: string
|
||||
title: string
|
||||
} {
|
||||
@@ -32,8 +35,8 @@ export function getColumnHeaderDetails(
|
||||
switch (column.subtype) {
|
||||
case 'ORG_PUBLIC_EVENTS': {
|
||||
return {
|
||||
avatarDetails: { owner: column.params.org },
|
||||
icon: 'organization',
|
||||
showAvatarAsIcon: true,
|
||||
subtitle: 'Events',
|
||||
title: column.params.org,
|
||||
}
|
||||
@@ -47,32 +50,38 @@ export function getColumnHeaderDetails(
|
||||
}
|
||||
case 'REPO_EVENTS': {
|
||||
return {
|
||||
avatarDetails: {
|
||||
owner: column.params.owner,
|
||||
repo: column.params.repo,
|
||||
},
|
||||
icon: 'repo',
|
||||
showAvatarAsIcon: true,
|
||||
subtitle: 'Events',
|
||||
title: column.params.repo,
|
||||
}
|
||||
}
|
||||
case 'REPO_NETWORK_EVENTS': {
|
||||
return {
|
||||
avatarDetails: {
|
||||
owner: column.params.owner,
|
||||
repo: column.params.repo,
|
||||
},
|
||||
icon: 'repo',
|
||||
showAvatarAsIcon: true,
|
||||
subtitle: 'Network',
|
||||
title: column.params.repo,
|
||||
}
|
||||
}
|
||||
case 'USER_EVENTS': {
|
||||
return {
|
||||
avatarDetails: { owner: column.params.username },
|
||||
icon: 'person',
|
||||
showAvatarAsIcon: true,
|
||||
subtitle: 'Activity',
|
||||
title: column.params.username,
|
||||
}
|
||||
}
|
||||
case 'USER_ORG_EVENTS': {
|
||||
return {
|
||||
avatarDetails: { owner: column.params.org },
|
||||
icon: 'organization',
|
||||
showAvatarAsIcon: true,
|
||||
subtitle: 'Activity',
|
||||
title: column.params.org,
|
||||
}
|
||||
@@ -81,8 +90,8 @@ export function getColumnHeaderDetails(
|
||||
case 'USER_RECEIVED_EVENTS':
|
||||
case 'USER_RECEIVED_PUBLIC_EVENTS': {
|
||||
return {
|
||||
avatarDetails: { owner: column.params.username },
|
||||
icon: 'person',
|
||||
showAvatarAsIcon: true,
|
||||
subtitle: 'Activity',
|
||||
title: column.params.username,
|
||||
}
|
||||
@@ -94,7 +103,6 @@ export function getColumnHeaderDetails(
|
||||
)
|
||||
return {
|
||||
icon: 'mark-github',
|
||||
showAvatarAsIcon: false,
|
||||
subtitle: (column as any).subtype || '',
|
||||
title: 'Unknown',
|
||||
}
|
||||
@@ -105,9 +113,8 @@ export function getColumnHeaderDetails(
|
||||
case 'notifications': {
|
||||
return {
|
||||
icon: 'bell',
|
||||
showAvatarAsIcon: false,
|
||||
title: 'Notifications',
|
||||
subtitle: column.params.all ? 'All' : '',
|
||||
title: 'Notifications',
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +123,6 @@ export function getColumnHeaderDetails(
|
||||
console.error(`Invalid column type: '${(column as any).type}'.`)
|
||||
return {
|
||||
icon: 'mark-github',
|
||||
showAvatarAsIcon: false,
|
||||
subtitle: (column as any).type || '',
|
||||
title: 'Unknown',
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user