feat(conference) UI updates for mobile navigation bar (#10437)

* feat(conference) updated native navigation bar and toolbox styles
This commit is contained in:
Calinteodor 2021-11-25 18:41:03 +02:00 committed by GitHub
parent 4a5982da1f
commit cc63ff1c3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 66 additions and 34 deletions

View File

@ -34,6 +34,7 @@ export const colors = {
surface11: '#FFF', surface11: '#FFF',
surface12: '#AAAAAA', surface12: '#AAAAAA',
surface13: '#495258', surface13: '#495258',
surface14: '#555555',
success04: '#189B55', success04: '#189B55',
success05: '#1EC26A', success05: '#1EC26A',
@ -67,6 +68,7 @@ export const colorMap = {
ui04: 'surface05', ui04: 'surface05',
ui05: 'surface06', ui05: 'surface06',
ui12: 'surface11', ui12: 'surface11',
ui13: 'surface14',
// Primary buttons // Primary buttons
action01: 'primary05', action01: 'primary05',
@ -168,6 +170,9 @@ export const colorMap = {
// Tertiary color for disabled actions // Tertiary color for disabled actions
icon03: 'surface07', icon03: 'surface07',
// Quaternary color for disabled actions
icon04: 'surface14',
// Error message // Error message
iconError: 'error06', iconError: 'error06',

View File

@ -254,7 +254,8 @@ class Conference extends AbstractConference<Props, *> {
_connecting, _connecting,
_largeVideoParticipantId, _largeVideoParticipantId,
_reducedUI, _reducedUI,
_shouldDisplayTileView _shouldDisplayTileView,
_toolboxVisible
} = this.props; } = this.props;
if (_reducedUI) { if (_reducedUI) {
@ -304,7 +305,10 @@ class Conference extends AbstractConference<Props, *> {
<SafeAreaView <SafeAreaView
pointerEvents = 'box-none' pointerEvents = 'box-none'
style = { styles.navBarSafeView }> style = {
_toolboxVisible
? styles.navBarSafeViewColor
: styles.navBarSafeViewTransparent }>
<NavigationBar /> <NavigationBar />
{ this._renderNotificationsContainer() } { this._renderNotificationsContainer() }
<KnockingParticipantList /> <KnockingParticipantList />

View File

@ -6,6 +6,17 @@ export const INSECURE_ROOM_NAME_LABEL_COLOR = BaseTheme.palette.warning03;
const NAVBAR_BUTTON_SIZE = 24; const NAVBAR_BUTTON_SIZE = 24;
/**
* The styles of the safe area view that contains the navigation bar.
*/
const navBarSafeView = {
left: 0,
position: 'absolute',
right: 0,
top: 0
};
/** /**
* The styles of the feature conference. * The styles of the feature conference.
*/ */
@ -43,16 +54,21 @@ export default {
}, },
inviteButtonContainer: { inviteButtonContainer: {
borderRadius: 3,
height: BaseTheme.spacing[7],
position: 'absolute', position: 'absolute',
marginTop: BaseTheme.spacing[1],
marginRight: BaseTheme.spacing[1],
top: 0, top: 0,
right: 0, right: 0,
zIndex: 1 zIndex: 1,
width: BaseTheme.spacing[7]
}, },
inviteButton: { inviteButton: {
iconStyle: { iconStyle: {
padding: 10,
color: BaseTheme.palette.icon01, color: BaseTheme.palette.icon01,
padding: 12,
fontSize: NAVBAR_BUTTON_SIZE fontSize: NAVBAR_BUTTON_SIZE
}, },
underlayColor: BaseTheme.spacing.underlay01 underlayColor: BaseTheme.spacing.underlay01
@ -82,35 +98,41 @@ export default {
}, },
pipButtonContainer: { pipButtonContainer: {
borderRadius: 3,
height: BaseTheme.spacing[7],
position: 'absolute', position: 'absolute',
marginTop: BaseTheme.spacing[1],
marginLeft: BaseTheme.spacing[1],
top: 0, top: 0,
left: 0, left: 0,
zIndex: 1 zIndex: 1,
width: BaseTheme.spacing[7]
}, },
pipButton: { pipButton: {
iconStyle: { iconStyle: {
padding: 10,
color: BaseTheme.palette.icon01, color: BaseTheme.palette.icon01,
padding: 12,
fontSize: NAVBAR_BUTTON_SIZE fontSize: NAVBAR_BUTTON_SIZE
}, },
underlayColor: BaseTheme.palette.underlay01 underlayColor: BaseTheme.spacing.underlay01
}, },
navBarSafeView: { navBarSafeViewColor: {
left: 0, ...navBarSafeView,
position: 'absolute', backgroundColor: BaseTheme.palette.uiBackground
right: 0, },
top: 0
navBarSafeViewTransparent: {
...navBarSafeView
}, },
navBarWrapper: { navBarWrapper: {
alignItems: 'center', alignItems: 'center',
flex: 1, flex: 1,
flexDirection: 'row', flexDirection: 'row',
height: 44, height: BaseTheme.spacing[8],
justifyContent: 'center', justifyContent: 'center'
paddingHorizontal: 14
}, },
roomTimer: { roomTimer: {
@ -121,9 +143,8 @@ export default {
}, },
roomTimerView: { roomTimerView: {
backgroundColor: 'rgba(0,0,0,0.8)', backgroundColor: BaseTheme.palette.action02,
borderBottomRightRadius: 3, borderRadius: 3,
borderTopRightRadius: 3,
height: 28, height: 28,
justifyContent: 'center', justifyContent: 'center',
minWidth: 50 minWidth: 50
@ -142,7 +163,8 @@ export default {
flexShrink: 1, flexShrink: 1,
height: 28, height: 28,
justifyContent: 'center', justifyContent: 'center',
paddingHorizontal: 10 paddingHorizontal: 10,
maxWidth: 168
}, },
roomNameWrapper: { roomNameWrapper: {

View File

@ -4,7 +4,7 @@ import type { Dispatch } from 'redux';
import { getFeatureFlag, INVITE_ENABLED } from '../../../../base/flags'; import { getFeatureFlag, INVITE_ENABLED } from '../../../../base/flags';
import { translate } from '../../../../base/i18n'; import { translate } from '../../../../base/i18n';
import { IconAddPeople } from '../../../../base/icons'; import { IconInviteMore } from '../../../../base/icons';
import { connect } from '../../../../base/redux'; import { connect } from '../../../../base/redux';
import { AbstractButton, type AbstractButtonProps } from '../../../../base/toolbox/components'; import { AbstractButton, type AbstractButtonProps } from '../../../../base/toolbox/components';
import { doInvitePeople } from '../../../actions.native'; import { doInvitePeople } from '../../../actions.native';
@ -23,7 +23,7 @@ type Props = AbstractButtonProps & {
*/ */
class InviteButton extends AbstractButton<Props, *> { class InviteButton extends AbstractButton<Props, *> {
accessibilityLabel = 'toolbar.accessibilityLabel.shareRoom'; accessibilityLabel = 'toolbar.accessibilityLabel.shareRoom';
icon = IconAddPeople; icon = IconInviteMore;
label = 'toolbar.shareRoom'; label = 'toolbar.shareRoom';
/** /**

View File

@ -1,7 +1,8 @@
// @flow // @flow
import { ColorSchemeRegistry, schemeColor } from '../../../base/color-scheme'; import { ColorSchemeRegistry, schemeColor } from '../../../base/color-scheme';
import { BoxModel, ColorPalette } from '../../../base/styles'; import { BoxModel } from '../../../base/styles';
import BaseTheme from '../../../base/ui/components/BaseTheme';
const BUTTON_SIZE = 48; const BUTTON_SIZE = 48;
@ -27,7 +28,7 @@ const toolbarButton = {
*/ */
const toolbarButtonIcon = { const toolbarButtonIcon = {
alignSelf: 'center', alignSelf: 'center',
color: ColorPalette.darkGrey, color: BaseTheme.palette.icon04,
fontSize: 24 fontSize: 24
}; };
@ -37,7 +38,7 @@ const toolbarButtonIcon = {
*/ */
const whiteToolbarButtonIcon = { const whiteToolbarButtonIcon = {
...toolbarButtonIcon, ...toolbarButtonIcon,
color: ColorPalette.white color: BaseTheme.palette.icon01
}; };
/** /**
@ -56,14 +57,14 @@ const reactionButton = {
*/ */
const reactionEmoji = { const reactionEmoji = {
fontSize: 20, fontSize: 20,
color: ColorPalette.white color: BaseTheme.palette.icon01
}; };
const reactionMenu = { const reactionMenu = {
flexDirection: 'column', flexDirection: 'column',
justifyContent: 'center', justifyContent: 'center',
alignItems: 'center', alignItems: 'center',
backgroundColor: ColorPalette.black, backgroundColor: BaseTheme.palette.bottomSheet,
padding: 16 padding: 16
}; };
@ -82,7 +83,7 @@ const styles = {
*/ */
toolbox: { toolbox: {
alignItems: 'center', alignItems: 'center',
backgroundColor: ColorPalette.darkBackground, backgroundColor: BaseTheme.palette.uiBackground,
borderTopLeftRadius: 3, borderTopLeftRadius: 3,
borderTopRightRadius: 3, borderTopRightRadius: 3,
flexDirection: 'row', flexDirection: 'row',
@ -128,7 +129,7 @@ ColorSchemeRegistry.register('Toolbox', {
}, },
backgroundToggle: { backgroundToggle: {
backgroundColor: ColorPalette.toggled backgroundColor: BaseTheme.palette.ui13
}, },
hangupButtonStyles: { hangupButtonStyles: {
@ -137,7 +138,7 @@ ColorSchemeRegistry.register('Toolbox', {
...toolbarButton, ...toolbarButton,
backgroundColor: schemeColor('hangup') backgroundColor: schemeColor('hangup')
}, },
underlayColor: ColorPalette.buttonUnderlay underlayColor: BaseTheme.palette.underlay01
}, },
reactionDialog: { reactionDialog: {
@ -165,21 +166,21 @@ ColorSchemeRegistry.register('Toolbox', {
reactionButton: { reactionButton: {
style: reactionButton, style: reactionButton,
underlayColor: ColorPalette.toggled, underlayColor: BaseTheme.palette.ui13,
emoji: reactionEmoji emoji: reactionEmoji
}, },
raiseHandButton: { raiseHandButton: {
style: { style: {
...reactionButton, ...reactionButton,
backgroundColor: ColorPalette.toggled, backgroundColor: BaseTheme.palette.ui13,
width: '100%', width: '100%',
borderRadius: 6 borderRadius: 6
}, },
underlayColor: ColorPalette.toggled, underlayColor: BaseTheme.palette.ui13,
emoji: reactionEmoji, emoji: reactionEmoji,
text: { text: {
color: ColorPalette.white, color: BaseTheme.palette.text01,
fontWeight: '600', fontWeight: '600',
marginLeft: 8, marginLeft: 8,
lineHeight: 24 lineHeight: 24
@ -192,7 +193,7 @@ ColorSchemeRegistry.register('Toolbox', {
}, },
emojiAnimation: { emojiAnimation: {
color: ColorPalette.white, color: BaseTheme.palette.icon01,
position: 'absolute', position: 'absolute',
zIndex: 1001, zIndex: 1001,
elevation: 2, elevation: 2,