Fix lag for PermissionRequestDialog

This commit is contained in:
Yuya Ochiai
2017-11-17 00:10:11 +09:00
parent 7a8b920cd3
commit ff7c783a3a
3 changed files with 15 additions and 23 deletions

View File

@@ -79,8 +79,8 @@ function PermissionRequestDialog(props) {
} }
PermissionRequestDialog.propTypes = { PermissionRequestDialog.propTypes = {
origin: PropTypes.string.isRequired, origin: PropTypes.string,
permission: PropTypes.oneOf(['media', 'geolocation', 'notifications', 'midiSysex', 'pointerLock', 'fullscreen', 'openExternal']).isRequired, permission: PropTypes.oneOf(['media', 'geolocation', 'notifications', 'midiSysex', 'pointerLock', 'fullscreen', 'openExternal']),
onClickAllow: PropTypes.func, onClickAllow: PropTypes.func,
onClickBlock: PropTypes.func, onClickBlock: PropTypes.func,
onClickClose: PropTypes.func onClickClose: PropTypes.func

View File

@@ -31,48 +31,36 @@ class TabBar extends React.Component { // need "this"
</div>); </div>);
} }
const id = 'teamTabItem' + index; const id = 'teamTabItem' + index;
const permissionOverlay = this.props.requestingPermission[index] ? ( const requestingPermission = this.props.requestingPermission[index];
const permissionOverlay = (
<Overlay <Overlay
className='TabBar-permissionOverlay' className='TabBar-permissionOverlay'
placement='bottom' placement='bottom'
show={this.props.activeKey === index} show={requestingPermission && this.props.activeKey === index}
target={() => findDOMNode(this.refs[id])} target={() => findDOMNode(this.refs[id])}
> >
<PermissionRequestDialog <PermissionRequestDialog
id={`${id}-permissionDialog`} id={`${id}-permissionDialog`}
origin={this.props.requestingPermission[index].origin} origin={requestingPermission ? requestingPermission.origin : null}
permission={this.props.requestingPermission[index].permission} permission={requestingPermission ? requestingPermission.permission : null}
onClickAllow={this.props.onClickPermissionDialog.bind(null, index, 'allow')} onClickAllow={this.props.onClickPermissionDialog.bind(null, index, 'allow')}
onClickBlock={this.props.onClickPermissionDialog.bind(null, index, 'block')} onClickBlock={this.props.onClickPermissionDialog.bind(null, index, 'block')}
onClickClose={this.props.onClickPermissionDialog.bind(null, index, 'close')} onClickClose={this.props.onClickPermissionDialog.bind(null, index, 'close')}
/> />
</Overlay> </Overlay>
) : null; );
if (unreadCount === 0) {
return (
<NavItem
className='teamTabItem'
key={id}
id={id}
eventKey={index}
ref={id}
>
{ team.name }
{ ' ' }
{ badgeDiv }
{permissionOverlay}
</NavItem>);
}
return ( return (
<NavItem <NavItem
className='teamTabItem' className='teamTabItem'
key={id} key={id}
id={id} id={id}
eventKey={index} eventKey={index}
ref={id}
> >
<b>{ team.name }</b> <span className={unreadCount === 0 ? '' : 'teamTabItem-label'}>{team.name}</span>
{ ' ' } { ' ' }
{ badgeDiv } { badgeDiv }
{permissionOverlay}
</NavItem>); </NavItem>);
}); });
if (this.props.showAddServerButton === true) { if (this.props.showAddServerButton === true) {

View File

@@ -37,3 +37,7 @@
margin-top: 5px; margin-top: 5px;
border-radius: 50%; border-radius: 50%;
} }
.TabBar .teamTabItem-label {
font-weight: bold;
}