Merge pull request #655 from yuya-oc/fix-permission-dialog-lag

Fix permission dialog lag
This commit is contained in:
Yuya Ochiai 2017-11-24 00:02:43 +09:00 committed by GitHub
commit aa003c7207
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 24 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,24 +31,24 @@ 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={() => 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 ( return (
<NavItem <NavItem
className='teamTabItem' className='teamTabItem'
@ -57,23 +57,11 @@ class TabBar extends React.Component { // need "this"
eventKey={index} eventKey={index}
ref={id} ref={id}
> >
{ team.name } <span className={unreadCount === 0 ? '' : 'teamTabItem-label'}>{team.name}</span>
{ ' ' } { ' ' }
{ badgeDiv } { badgeDiv }
{permissionOverlay} {permissionOverlay}
</NavItem>); </NavItem>);
}
return (
<NavItem
className='teamTabItem'
key={id}
id={id}
eventKey={index}
>
<b>{ team.name }</b>
{ ' ' }
{ badgeDiv }
</NavItem>);
}); });
if (this.props.showAddServerButton === true) { if (this.props.showAddServerButton === true) {
tabs.push( tabs.push(

View file

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