fix: move right panel buttons to a panelbuttongroup

also enforce a 300 min width for the right panel, otherwise the bloaded
disappearing message design is not looking good
pull/2971/head
Audric Ackermann 2 years ago
parent 8872ccf7fe
commit e6dd6844f9

@ -27,6 +27,7 @@
transform: translateX(100%); transform: translateX(100%);
will-change: transform; will-change: transform;
width: 25vw; width: 25vw;
min-width: 300px; // because the disappear messages don't render will with less than this, and 25% can be less than that
z-index: 5; z-index: 5;
background-color: var(--background-primary-color); background-color: var(--background-primary-color);

@ -81,6 +81,17 @@ const StyledPanelButton = styled.button<{
:not(:last-child) { :not(:last-child) {
border-bottom: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color);
} }
padding-top: var(--margins-lg);
padding-bottom: var(--margins-lg);
text-align: left;
:first-child {
padding-top: 0;
}
:last-child {
padding-bottom: 0;
}
`; `;
export type PanelButtonProps = { export type PanelButtonProps = {

@ -1,9 +1,10 @@
import React from 'react'; import React from 'react';
import { SpacerLG } from '../basic/Text';
import { SessionIcon, SessionIconType } from '../icon'; import { SessionIcon, SessionIconType } from '../icon';
import { PanelButton, PanelButtonProps, StyledContent, StyledText } from './PanelButton'; import { PanelButton, PanelButtonProps, StyledContent, StyledText } from './PanelButton';
interface PanelIconButton extends Omit<PanelButtonProps, 'children'> { interface PanelIconButton extends Omit<PanelButtonProps, 'children'> {
iconType: SessionIconType; iconType: SessionIconType | null;
text: string; text: string;
} }
@ -13,7 +14,7 @@ export const PanelIconButton = (props: PanelIconButton) => {
return ( return (
<PanelButton disabled={disabled} onClick={onClick} dataTestId={dataTestId}> <PanelButton disabled={disabled} onClick={onClick} dataTestId={dataTestId}>
<StyledContent disabled={disabled}> <StyledContent disabled={disabled}>
<SessionIcon iconType={iconType} iconSize="medium" /> {iconType ? <SessionIcon iconType={iconType} iconSize="medium" /> : <SpacerLG />}
<StyledText>{text}</StyledText> <StyledText>{text}</StyledText>
</StyledContent> </StyledContent>
</PanelButton> </PanelButton>

@ -176,26 +176,6 @@ const StyledLeaveButton = styled.div`
} }
`; `;
const StyledGroupSettingsItem = styled.div`
display: flex;
align-items: center;
min-height: 3rem;
font-size: var(--font-size-md);
color: var(--right-panel-item-text-color);
background-color: var(--right-panel-item-background-color);
border-top: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
width: -webkit-fill-available;
padding: 0 var(--margins-md);
transition: var(--default-duration);
cursor: pointer;
&:hover {
background-color: var(--right-panel-item-background-hover-color);
}
`;
const StyledName = styled.h4` const StyledName = styled.h4`
padding-inline: var(--margins-md); padding-inline: var(--margins-md);
font-size: var(--font-size-md); font-size: var(--font-size-md);
@ -301,56 +281,47 @@ export const OverlayRightPanelSettings = () => {
</div> </div>
<SpacerLG /> <SpacerLG />
</> </>
)} )}{' '}
<PanelButtonGroup>
{showUpdateGroupNameButton && ( {showUpdateGroupNameButton && (
<StyledGroupSettingsItem <PanelIconButton
className="right-panel-item"
role="button"
onClick={() => { onClick={() => {
void showUpdateGroupNameByConvoId(selectedConvoKey); void showUpdateGroupNameByConvoId(selectedConvoKey);
}} }}
> text={isPublic ? window.i18n('editGroup') : window.i18n('editGroupName')}
{isPublic ? window.i18n('editGroup') : window.i18n('editGroupName')} iconType={null}
</StyledGroupSettingsItem> />
)} )}
{showAddRemoveModeratorsButton && ( {showAddRemoveModeratorsButton && (
<> <>
<StyledGroupSettingsItem <PanelIconButton
className="right-panel-item" iconType={null}
role="button"
onClick={() => { onClick={() => {
showAddModeratorsByConvoId(selectedConvoKey); showAddModeratorsByConvoId(selectedConvoKey);
}} }}
> text={window.i18n('addModerators')}
{window.i18n('addModerators')} />
</StyledGroupSettingsItem> <PanelIconButton
<StyledGroupSettingsItem iconType={null}
className="right-panel-item"
role="button"
onClick={() => { onClick={() => {
showRemoveModeratorsByConvoId(selectedConvoKey); showRemoveModeratorsByConvoId(selectedConvoKey);
}} }}
> text={window.i18n('removeModerators')}
{window.i18n('removeModerators')} />
</StyledGroupSettingsItem>
</> </>
)} )}
{showUpdateGroupMembersButton && ( {showUpdateGroupMembersButton && (
<StyledGroupSettingsItem <PanelIconButton
className="right-panel-item" iconType={null}
role="button"
onClick={() => { onClick={() => {
void showUpdateGroupMembersByConvoId(selectedConvoKey); void showUpdateGroupMembersByConvoId(selectedConvoKey);
}} }}
> text={window.i18n('groupMembers')}
{window.i18n('groupMembers')} />
</StyledGroupSettingsItem>
)} )}
{hasDisappearingMessages && ( {hasDisappearingMessages && (
/* TODO Move ButtonGroup around all settings items */
<PanelButtonGroup>
<PanelIconButton <PanelIconButton
iconType={'timer50'} iconType={'timer50'}
text={window.i18n('disappearingMessages')} text={window.i18n('disappearingMessages')}
@ -358,9 +329,8 @@ export const OverlayRightPanelSettings = () => {
dispatch(setRightOverlayMode('disappearing-messages')); dispatch(setRightOverlayMode('disappearing-messages'));
}} }}
/> />
</PanelButtonGroup>
)} )}
</PanelButtonGroup>
<MediaGallery documents={documents} media={media} /> <MediaGallery documents={documents} media={media} />
{isGroup && ( {isGroup && (
<StyledLeaveButton> <StyledLeaveButton>

Loading…
Cancel
Save