removed the enum from SessionIconType. Just rely on the type itself

pull/1888/head
audric 4 years ago
parent a53392853f
commit a30876fd65

@ -22,7 +22,7 @@ import {
} from '../state/ducks/conversations'; } from '../state/ducks/conversations';
import _ from 'underscore'; import _ from 'underscore';
import { useMembersAvatars } from '../hooks/useMembersAvatar'; import { useMembersAvatars } from '../hooks/useMembersAvatar';
import { SessionIcon, SessionIconType } from './session/icon'; import { SessionIcon } from './session/icon';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { SectionType } from '../state/ducks/section'; import { SectionType } from '../state/ducks/section';
import { getFocusedSection } from '../state/selectors/section'; import { getFocusedSection } from '../state/selectors/section';
@ -85,11 +85,7 @@ const HeaderItem = (props: {
const pinIcon = const pinIcon =
isMessagesSection && isPinned ? ( isMessagesSection && isPinned ? (
<SessionIcon <SessionIcon iconType="pin" iconColor={theme.colors.textColorSubtle} iconSize={'tiny'} />
iconType={SessionIconType.Pin}
iconColor={theme.colors.textColorSubtle}
iconSize={'tiny'}
/>
) : null; ) : null;
const NotificationSettingIcon = () => { const NotificationSettingIcon = () => {
@ -102,19 +98,11 @@ const HeaderItem = (props: {
return null; return null;
case 'disabled': case 'disabled':
return ( return (
<SessionIcon <SessionIcon iconType="mute" iconColor={theme.colors.textColorSubtle} iconSize={'tiny'} />
iconType={SessionIconType.Mute}
iconColor={theme.colors.textColorSubtle}
iconSize={'tiny'}
/>
); );
case 'mentions_only': case 'mentions_only':
return ( return (
<SessionIcon <SessionIcon iconType="bell" iconColor={theme.colors.textColorSubtle} iconSize={'tiny'} />
iconType={SessionIconType.BellMention}
iconColor={theme.colors.textColorSubtle}
iconSize={'tiny'}
/>
); );
default: default:
return null; return null;

@ -143,7 +143,7 @@ const IconButton = ({ onClick, type, theme }: IconButtonProps) => {
onClick(); onClick();
}; };
let iconRotation = 0; let iconRotation = 0;
let iconType = SessionIconType.Chevron; let iconType: SessionIconType = 'chevron';
switch (type) { switch (type) {
case 'next': case 'next':
iconRotation = 270; iconRotation = 270;
@ -152,10 +152,10 @@ const IconButton = ({ onClick, type, theme }: IconButtonProps) => {
iconRotation = 90; iconRotation = 90;
break; break;
case 'close': case 'close':
iconType = SessionIconType.Exit; iconType = 'exit';
break; break;
case 'save': case 'save':
iconType = SessionIconType.Upload; iconType = 'upload';
iconRotation = 180; iconRotation = 180;
break; break;

@ -2,7 +2,7 @@ import React from 'react';
import { Avatar, AvatarSize } from '../Avatar'; import { Avatar, AvatarSize } from '../Avatar';
import { SessionIconButton, SessionIconType } from '../session/icon'; import { SessionIconButton } from '../session/icon';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton';
import { ConversationAvatar } from '../session/usingClosedConversationDetails'; import { ConversationAvatar } from '../session/usingClosedConversationDetails';
@ -84,11 +84,7 @@ const SelectionOverlay = (props: {
return ( return (
<div className="message-selection-overlay"> <div className="message-selection-overlay">
<div className="close-button"> <div className="close-button">
<SessionIconButton <SessionIconButton iconType="exit" iconSize={'medium'} onClick={onCloseOverlay} />
iconType={SessionIconType.Exit}
iconSize={'medium'}
onClick={onCloseOverlay}
/>
</div> </div>
<div className="button-group"> <div className="button-group">
@ -118,7 +114,7 @@ const TripleDotsMenu = (props: { triggerId: string; showBackButton: boolean }) =
}); });
}} }}
> >
<SessionIconButton iconType={SessionIconType.Ellipses} iconSize={'medium'} /> <SessionIconButton iconType="ellipses" iconSize={'medium'} />
</div> </div>
); );
}; };
@ -176,12 +172,7 @@ const BackButton = (props: { onGoBack: () => void; showBackButton: boolean }) =>
} }
return ( return (
<SessionIconButton <SessionIconButton iconType="chevron" iconSize={'large'} iconRotation={90} onClick={onGoBack} />
iconType={SessionIconType.Chevron}
iconSize={'large'}
iconRotation={90}
onClick={onGoBack}
/>
); );
}; };

@ -3,7 +3,7 @@ import { useTheme } from 'styled-components';
import { PropsForDataExtractionNotification } from '../../models/messageType'; import { PropsForDataExtractionNotification } from '../../models/messageType';
import { SignalService } from '../../protobuf'; import { SignalService } from '../../protobuf';
import { Flex } from '../basic/Flex'; import { Flex } from '../basic/Flex';
import { SessionIcon, SessionIconType } from '../session/icon'; import { SessionIcon } from '../session/icon';
import { SpacerXS, Text } from '../basic/Text'; import { SpacerXS, Text } from '../basic/Text';
import { ReadableMessage } from './ReadableMessage'; import { ReadableMessage } from './ReadableMessage';
@ -32,12 +32,7 @@ export const DataExtractionNotification = (props: PropsForDataExtractionNotifica
margin={theme.common.margins.sm} margin={theme.common.margins.sm}
id={`msg-${messageId}`} id={`msg-${messageId}`}
> >
<SessionIcon <SessionIcon iconType="upload" theme={theme} iconSize={'small'} iconRotation={180} />
iconType={SessionIconType.Upload}
theme={theme}
iconSize={'small'}
iconRotation={180}
/>
<SpacerXS /> <SpacerXS />
<Text text={contentText} subtle={true} /> <Text text={contentText} subtle={true} />
</Flex> </Flex>

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { SessionIconButton, SessionIconType } from '../session/icon'; import { SessionIconButton } from '../session/icon';
import { useTheme } from 'styled-components'; import { useTheme } from 'styled-components';
import { PropsForGroupInvitation } from '../../state/ducks/conversations'; import { PropsForGroupInvitation } from '../../state/ducks/conversations';
import { acceptOpenGroupInvitation } from '../../interactions/messageInteractions'; import { acceptOpenGroupInvitation } from '../../interactions/messageInteractions';
@ -27,7 +27,7 @@ export const GroupInvitation = (props: PropsForGroupInvitation) => {
<div className={classNames(classes)}> <div className={classNames(classes)}>
<div className="contents"> <div className="contents">
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Plus} iconType="plus"
iconColor={theme.colors.accent} iconColor={theme.colors.accent}
theme={theme} theme={theme}
iconSize={'large'} iconSize={'large'}

@ -10,7 +10,7 @@ import {
getSortedMessagesOfSelectedConversation, getSortedMessagesOfSelectedConversation,
} from '../../state/selectors/conversations'; } from '../../state/selectors/conversations';
import { getAudioAutoplay } from '../../state/selectors/userConfig'; import { getAudioAutoplay } from '../../state/selectors/userConfig';
import { SessionIcon, SessionIconType } from '../session/icon'; import { SessionIcon } from '../session/icon';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton';
export const AudioPlayerWithEncryptedFile = (props: { export const AudioPlayerWithEncryptedFile = (props: {
@ -109,7 +109,7 @@ export const AudioPlayerWithEncryptedFile = (props: {
customIcons={{ customIcons={{
play: ( play: (
<SessionIcon <SessionIcon
iconType={SessionIconType.Play} iconType="play"
iconSize={'small'} iconSize={'small'}
iconColor={theme.colors.textColorSubtle} iconColor={theme.colors.textColorSubtle}
theme={theme} theme={theme}
@ -117,7 +117,7 @@ export const AudioPlayerWithEncryptedFile = (props: {
), ),
pause: ( pause: (
<SessionIcon <SessionIcon
iconType={SessionIconType.Pause} iconType="pause"
iconSize={'small'} iconSize={'small'}
iconColor={theme.colors.textColorSubtle} iconColor={theme.colors.textColorSubtle}
theme={theme} theme={theme}

@ -3,7 +3,7 @@ import React from 'react';
import { Intl } from '../Intl'; import { Intl } from '../Intl';
import { missingCaseError } from '../../util/missingCaseError'; import { missingCaseError } from '../../util/missingCaseError';
import { SessionIcon, SessionIconType } from '../session/icon'; import { SessionIcon } from '../session/icon';
import { PropsForExpirationTimer } from '../../state/ducks/conversations'; import { PropsForExpirationTimer } from '../../state/ducks/conversations';
import { ReadableMessage } from './ReadableMessage'; import { ReadableMessage } from './ReadableMessage';
@ -46,11 +46,7 @@ export const TimerNotification = (props: PropsForExpirationTimer) => {
<div className="module-timer-notification" id={`msg-${props.messageId}`}> <div className="module-timer-notification" id={`msg-${props.messageId}`}>
<div className="module-timer-notification__message"> <div className="module-timer-notification__message">
<div> <div>
<SessionIcon <SessionIcon iconType="stopwatch" iconSize={'small'} iconColor={'#ABABAB'} />
iconType={SessionIconType.Stopwatch}
iconSize={'small'}
iconColor={'#ABABAB'}
/>
</div> </div>
<div> <div>

@ -4,7 +4,7 @@ import { getMessageById, getMessagesByConversation } from '../../../data/data';
import { getConversationController } from '../../../session/conversations'; import { getConversationController } from '../../../session/conversations';
import { AttachmentDownloads } from '../../../session/utils'; import { AttachmentDownloads } from '../../../session/utils';
import { updateConfirmModal } from '../../../state/ducks/modalDialog'; import { updateConfirmModal } from '../../../state/ducks/modalDialog';
import { SessionIcon, SessionIconType } from '../../session/icon'; import { SessionIcon } from '../../session/icon';
import { SessionButtonColor } from '../../session/SessionButton'; import { SessionButtonColor } from '../../session/SessionButton';
const StyledTrustSenderUI = styled.div` const StyledTrustSenderUI = styled.div`
@ -83,7 +83,7 @@ export const ClickToTrustSender = (props: { messageId: string }) => {
return ( return (
<StyledTrustSenderUI onClick={openConfirmationModal}> <StyledTrustSenderUI onClick={openConfirmationModal}>
<SessionIcon iconSize={'small'} iconType={SessionIconType.Gallery} /> <SessionIcon iconSize={'small'} iconType="gallery" />
<ClickToDownload>{window.i18n('clickToTrustContact')}</ClickToDownload> <ClickToDownload>{window.i18n('clickToTrustContact')}</ClickToDownload>
</StyledTrustSenderUI> </StyledTrustSenderUI>
); );

@ -1,7 +1,7 @@
import classNames from 'classnames'; import classNames from 'classnames';
import React from 'react'; import React from 'react';
import { isImageAttachment } from '../../../types/Attachment'; import { isImageAttachment } from '../../../types/Attachment';
import { SessionIcon, SessionIconType } from '../../session/icon'; import { SessionIcon } from '../../session/icon';
import { ImageGrid } from '../ImageGrid'; import { ImageGrid } from '../ImageGrid';
import { Image } from '../Image'; import { Image } from '../Image';
import { MINIMUM_LINK_PREVIEW_IMAGE_WIDTH } from '../Message'; import { MINIMUM_LINK_PREVIEW_IMAGE_WIDTH } from '../Message';
@ -63,7 +63,7 @@ export const MessagePreview = (props: Props) => {
<div className="module-message__link-preview__icon_container"> <div className="module-message__link-preview__icon_container">
<div className="module-message__link-preview__icon_container__inner"> <div className="module-message__link-preview__icon_container__inner">
<div className="module-message__link-preview__icon-container__circle-background"> <div className="module-message__link-preview__icon-container__circle-background">
<SessionIcon iconType={SessionIconType.Link} iconSize={'small'} /> <SessionIcon iconType="link" iconSize={'small'} />
</div> </div>
</div> </div>
</div> </div>

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import styled, { useTheme } from 'styled-components'; import styled, { useTheme } from 'styled-components';
import { MessageDeliveryStatus } from '../../../models/messageType'; import { MessageDeliveryStatus } from '../../../models/messageType';
import { SessionIcon, SessionIconType } from '../../session/icon'; import { SessionIcon } from '../../session/icon';
const MessageStatusSendingContainer = styled.div` const MessageStatusSendingContainer = styled.div`
display: inline-block; display: inline-block;
@ -13,12 +13,7 @@ const MessageStatusSending = () => {
const iconColor = useTheme().colors.textColor; const iconColor = useTheme().colors.textColor;
return ( return (
<MessageStatusSendingContainer> <MessageStatusSendingContainer>
<SessionIcon <SessionIcon rotateDuration={2} iconColor={iconColor} iconType="sending" iconSize={'tiny'} />
rotateDuration={2}
iconColor={iconColor}
iconType={SessionIconType.Sending}
iconSize={'tiny'}
/>
</MessageStatusSendingContainer> </MessageStatusSendingContainer>
); );
}; };
@ -28,7 +23,7 @@ const MessageStatusSent = () => {
return ( return (
<MessageStatusSendingContainer> <MessageStatusSendingContainer>
<SessionIcon iconColor={iconColor} iconType={SessionIconType.CircleCheck} iconSize={'tiny'} /> <SessionIcon iconColor={iconColor} iconType="circleCheck" iconSize={'tiny'} />
</MessageStatusSendingContainer> </MessageStatusSendingContainer>
); );
}; };
@ -38,11 +33,7 @@ const MessageStatusRead = () => {
return ( return (
<MessageStatusSendingContainer> <MessageStatusSendingContainer>
<SessionIcon <SessionIcon iconColor={iconColor} iconType="doubleCheckCircleFilled" iconSize={'tiny'} />
iconColor={iconColor}
iconType={SessionIconType.DoubleCheckCircleFilled}
iconSize={'tiny'}
/>
</MessageStatusSendingContainer> </MessageStatusSendingContainer>
); );
}; };
@ -51,11 +42,7 @@ const MessageStatusError = () => {
const theme = useTheme(); const theme = useTheme();
return ( return (
<MessageStatusSendingContainer title={window.i18n('sendFailed')}> <MessageStatusSendingContainer title={window.i18n('sendFailed')}>
<SessionIcon <SessionIcon iconColor={theme.colors.destructive} iconType="error" iconSize={'tiny'} />
iconColor={theme.colors.destructive}
iconType={SessionIconType.Error}
iconSize={'tiny'}
/>
</MessageStatusSendingContainer> </MessageStatusSendingContainer>
); );
}; };

@ -6,7 +6,7 @@ import { Avatar, AvatarSize } from '../Avatar';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../session/SessionButton';
import { SessionIconButton, SessionIconType } from '../session/icon'; import { SessionIconButton } from '../session/icon';
import { PillDivider } from '../session/PillDivider'; import { PillDivider } from '../session/PillDivider';
import { SyncUtils, ToastUtils, UserUtils } from '../../session/utils'; import { SyncUtils, ToastUtils, UserUtils } from '../../session/utils';
import { MAX_USERNAME_LENGTH } from '../session/registration/RegistrationStages'; import { MAX_USERNAME_LENGTH } from '../session/registration/RegistrationStages';
@ -72,7 +72,7 @@ export class EditProfileDialog extends React.Component<{}, State> {
viewEdit || viewQR viewEdit || viewQR
? [ ? [
{ {
iconType: SessionIconType.Chevron, iconType: 'chevron',
iconRotation: 90, iconRotation: 90,
onClick: () => { onClick: () => {
this.setState({ mode: 'default' }); this.setState({ mode: 'default' });
@ -149,7 +149,7 @@ export class EditProfileDialog extends React.Component<{}, State> {
/> />
<div className="qr-view-button"> <div className="qr-view-button">
<SessionIconButton <SessionIconButton
iconType={SessionIconType.QR} iconType="qr"
iconSize={'small'} iconSize={'small'}
iconColor={'rgb(0, 0, 0)'} iconColor={'rgb(0, 0, 0)'}
onClick={() => { onClick={() => {
@ -184,7 +184,7 @@ export class EditProfileDialog extends React.Component<{}, State> {
<div className="profile-name-uneditable"> <div className="profile-name-uneditable">
<p>{name}</p> <p>{name}</p>
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Pencil} iconType="pencil"
iconSize={'medium'} iconSize={'medium'}
onClick={() => { onClick={() => {
this.setState({ mode: 'edit' }); this.setState({ mode: 'edit' });

@ -18,7 +18,7 @@ import {
} from '../../state/selectors/onions'; } from '../../state/selectors/onions';
import { getTheme } from '../../state/selectors/theme'; import { getTheme } from '../../state/selectors/theme';
import { Flex } from '../basic/Flex'; import { Flex } from '../basic/Flex';
import { SessionIcon, SessionIconButton, SessionIconType } from '../session/icon'; import { SessionIcon, SessionIconButton } from '../session/icon';
import { SessionSpinner } from '../session/SessionSpinner'; import { SessionSpinner } from '../session/SessionSpinner';
import { SessionWrapperModal } from '../session/SessionWrapperModal'; import { SessionWrapperModal } from '../session/SessionWrapperModal';
@ -123,7 +123,7 @@ export const ModalStatusLight = (props: StatusLightType) => {
iconColor={color} iconColor={color}
glowDuration={glowDuration} glowDuration={glowDuration}
glowStartDelay={glowStartDelay} glowStartDelay={glowStartDelay}
iconType={SessionIconType.Circle} iconType="circle"
iconSize={'tiny'} iconSize={'tiny'}
theme={theme} theme={theme}
/> />
@ -160,7 +160,7 @@ export const ActionPanelOnionStatusLight = (props: {
return ( return (
<SessionIconButton <SessionIconButton
iconSize={'small'} iconSize={'small'}
iconType={SessionIconType.Circle} iconType="circle"
iconColor={iconColor} iconColor={iconColor}
onClick={handleClick} onClick={handleClick}
glowDuration={10} glowDuration={10}

@ -82,7 +82,7 @@ export class SessionModal extends React.PureComponent<Props, State> {
<div className="session-modal__header__close"> <div className="session-modal__header__close">
{showExitIcon ? ( {showExitIcon ? (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Exit} iconType="exit"
iconSize={'small'} iconSize={'small'}
onClick={this.close} onClick={this.close}
theme={this.props.theme} theme={this.props.theme}

@ -3,7 +3,6 @@ import React from 'react';
import { SessionButton, SessionButtonColor } from '../session/SessionButton'; import { SessionButton, SessionButtonColor } from '../session/SessionButton';
import { missingCaseError, PasswordUtil } from '../../util'; import { missingCaseError, PasswordUtil } from '../../util';
import { ToastUtils } from '../../session/utils'; import { ToastUtils } from '../../session/utils';
import { SessionIconType } from '../session/icon';
import { getPasswordHash } from '../../data/data'; import { getPasswordHash } from '../../data/data';
import { SessionWrapperModal } from '../session/SessionWrapperModal'; import { SessionWrapperModal } from '../session/SessionWrapperModal';
import { SpacerLG, SpacerSM } from '../basic/Text'; import { SpacerLG, SpacerSM } from '../basic/Text';
@ -170,7 +169,7 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
'setPasswordSuccessToast', 'setPasswordSuccessToast',
window.i18n('setPasswordTitle'), window.i18n('setPasswordTitle'),
window.i18n('setPasswordToastDescription'), window.i18n('setPasswordToastDescription'),
SessionIconType.Lock 'lock'
); );
this.props.onOk(); this.props.onOk();
@ -209,7 +208,7 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
'setPasswordSuccessToast', 'setPasswordSuccessToast',
window.i18n('changePasswordTitle'), window.i18n('changePasswordTitle'),
window.i18n('changePasswordToastDescription'), window.i18n('changePasswordToastDescription'),
SessionIconType.Lock 'lock'
); );
this.props.onOk(); this.props.onOk();

@ -96,19 +96,19 @@ const Section = (props: { type: SectionType; avatarPath?: string | null }) => {
let iconType: SessionIconType; let iconType: SessionIconType;
switch (type) { switch (type) {
case SectionType.Message: case SectionType.Message:
iconType = SessionIconType.ChatBubble; iconType = 'chatBubble';
break; break;
case SectionType.Contact: case SectionType.Contact:
iconType = SessionIconType.Users; iconType = 'users';
break; break;
case SectionType.Settings: case SectionType.Settings:
iconType = SessionIconType.Gear; iconType = 'gear';
break; break;
case SectionType.Moon: case SectionType.Moon:
iconType = SessionIconType.Moon; iconType = 'moon';
break; break;
default: default:
iconType = SessionIconType.Moon; iconType = 'moon';
} }
const iconColor = undefined; const iconColor = undefined;

@ -14,7 +14,6 @@ import { SessionSearchInput } from './SessionSearchInput';
import { cleanSearchTerm } from '../../util/cleanSearchTerm'; import { cleanSearchTerm } from '../../util/cleanSearchTerm';
import { RowRendererParamsType } from '../LeftPane'; import { RowRendererParamsType } from '../LeftPane';
import { SessionClosableOverlay, SessionClosableOverlayType } from './SessionClosableOverlay'; import { SessionClosableOverlay, SessionClosableOverlayType } from './SessionClosableOverlay';
import { SessionIconType } from './icon';
import { ContactType } from './SessionMemberListItem'; import { ContactType } from './SessionMemberListItem';
import { SessionButton, SessionButtonColor, SessionButtonType } from './SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from './SessionButton';
import { PubKey } from '../../session/types'; import { PubKey } from '../../session/types';
@ -133,7 +132,7 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
return ( return (
<LeftPaneSectionHeader <LeftPaneSectionHeader
label={window.i18n('messagesHeader')} label={window.i18n('messagesHeader')}
buttonIcon={SessionIconType.Plus} buttonIcon="plus"
buttonClicked={this.handleNewSessionButtonClick} buttonClicked={this.handleNewSessionButtonClick}
/> />
); );

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { SessionButton, SessionButtonColor, SessionButtonType } from './SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from './SessionButton';
import { SessionIcon, SessionIconType } from './icon'; import { SessionIcon } from './icon';
import { SessionSettingCategory } from './settings/SessionSettings'; import { SessionSettingCategory } from './settings/SessionSettings';
import { LeftPaneSectionHeader } from './LeftPaneSectionHeader'; import { LeftPaneSectionHeader } from './LeftPaneSectionHeader';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
@ -60,12 +60,7 @@ const LeftPaneSettingsCategoryRow = (props: { item: any }) => {
<div> <div>
{item.id === focusedSettingsSection && ( {item.id === focusedSettingsSection && (
<SessionIcon <SessionIcon iconSize={'medium'} iconType="chevron" iconRotation={270} theme={theme} />
iconSize={'medium'}
iconType={SessionIconType.Chevron}
iconRotation={270}
theme={theme}
/>
)} )}
</div> </div>
</div> </div>

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import { SessionIconButton, SessionIconType } from './icon'; import { SessionIconButton } from './icon';
import { SessionIdEditable } from './SessionIdEditable'; import { SessionIdEditable } from './SessionIdEditable';
import { ContactType, SessionMemberListItem } from './SessionMemberListItem'; import { ContactType, SessionMemberListItem } from './SessionMemberListItem';
import { ReduxConversationType } from '../../state/ducks/conversations'; import { ReduxConversationType } from '../../state/ducks/conversations';
@ -146,11 +146,7 @@ export class SessionClosableOverlay extends React.Component<Props, State> {
return ( return (
<div className="module-left-pane-overlay"> <div className="module-left-pane-overlay">
<div className="exit"> <div className="exit">
<SessionIconButton <SessionIconButton iconSize={'small'} iconType="exit" onClick={onCloseClick} />
iconSize={'small'}
iconType={SessionIconType.Exit}
onClick={onCloseClick}
/>
</div> </div>
<SpacerMD /> <SpacerMD />

@ -37,7 +37,7 @@ export const SessionDropdown = (props: Props) => {
> >
{label} {label}
<SessionIcon <SessionIcon
iconType={SessionIconType.Chevron} iconType="chevron"
iconSize={'small'} iconSize={'small'}
iconRotation={chevronOrientation} iconRotation={chevronOrientation}
theme={theme} theme={theme}

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { SessionIconButton, SessionIconType } from './icon'; import { SessionIconButton } from './icon';
import { DefaultTheme } from 'styled-components'; import { DefaultTheme } from 'styled-components';
interface Props { interface Props {
@ -109,7 +109,7 @@ export class SessionInput extends React.PureComponent<Props, State> {
private renderShowHideButton() { private renderShowHideButton() {
return ( return (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Eye} iconType="eye"
iconSize={'medium'} iconSize={'medium'}
onClick={() => { onClick={() => {
this.setState({ this.setState({

@ -2,7 +2,7 @@ import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { Avatar, AvatarSize } from '../Avatar'; import { Avatar, AvatarSize } from '../Avatar';
import { SessionIcon, SessionIconType } from './icon'; import { SessionIcon } from './icon';
import { Constants } from '../../session'; import { Constants } from '../../session';
import { useTheme } from 'styled-components'; import { useTheme } from 'styled-components';
import { PubKey } from '../../session/types'; import { PubKey } from '../../session/types';
@ -75,7 +75,7 @@ export const SessionMemberListItem = (props: Props) => {
</div> </div>
<span className={classNames('session-member-item__checkmark', isSelected && 'selected')}> <span className={classNames('session-member-item__checkmark', isSelected && 'selected')}>
<SessionIcon <SessionIcon
iconType={SessionIconType.Check} iconType="check"
iconSize={'medium'} iconSize={'medium'}
iconColor={Constants.UI.COLORS.GREEN} iconColor={Constants.UI.COLORS.GREEN}
theme={theme} theme={theme}

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { SessionIcon, SessionIconType } from './icon'; import { SessionIcon } from './icon';
import { SessionButton, SessionButtonColor, SessionButtonType } from './SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from './SessionButton';
import { Constants } from '../../session'; import { Constants } from '../../session';
import { DefaultTheme, withTheme } from 'styled-components'; import { DefaultTheme, withTheme } from 'styled-components';
@ -68,15 +68,10 @@ class SessionPasswordPromptInner extends React.PureComponent<{ theme: DefaultThe
/> />
); );
const infoIcon = this.state.clearDataView ? ( const infoIcon = this.state.clearDataView ? (
<SessionIcon <SessionIcon iconType="warning" iconSize={35} iconColor="#ce0000" theme={this.props.theme} />
iconType={SessionIconType.Warning}
iconSize={35}
iconColor="#ce0000"
theme={this.props.theme}
/>
) : ( ) : (
<SessionIcon <SessionIcon
iconType={SessionIconType.Lock} iconType="lock"
iconSize={35} iconSize={35}
iconColor={Constants.UI.COLORS.GREEN} iconColor={Constants.UI.COLORS.GREEN}
theme={this.props.theme} theme={this.props.theme}

@ -2,7 +2,7 @@ import React, { useEffect } from 'react';
import { AccentText } from './AccentText'; import { AccentText } from './AccentText';
import { RegistrationStages } from './registration/RegistrationStages'; import { RegistrationStages } from './registration/RegistrationStages';
import { SessionIconButton, SessionIconType } from './icon'; import { SessionIconButton } from './icon';
import { SessionToastContainer } from './SessionToastContainer'; import { SessionToastContainer } from './SessionToastContainer';
import { lightTheme, SessionTheme } from '../../state/ducks/SessionTheme'; import { lightTheme, SessionTheme } from '../../state/ducks/SessionTheme';
import { setSignInByLinking } from '../../session/utils/User'; import { setSignInByLinking } from '../../session/utils/User';
@ -20,7 +20,7 @@ export const SessionRegistrationView = () => {
<div className="session-content-close-button"> <div className="session-content-close-button">
<SessionIconButton <SessionIconButton
iconSize={'medium'} iconSize={'medium'}
iconType={SessionIconType.Exit} iconType="exit"
onClick={() => { onClick={() => {
window.close(); window.close();
}} }}

@ -3,7 +3,7 @@ import { useSelector } from 'react-redux';
import styled, { ThemeContext } from 'styled-components'; import styled, { ThemeContext } from 'styled-components';
import { getShowScrollButton } from '../../state/selectors/conversations'; import { getShowScrollButton } from '../../state/selectors/conversations';
import { SessionIconButton, SessionIconType } from './icon'; import { SessionIconButton } from './icon';
type Props = { type Props = {
onClick?: () => any; onClick?: () => any;
@ -24,7 +24,7 @@ export const SessionScrollButton = (props: Props) => {
return ( return (
<SessionScrollButtonDiv theme={themeContext}> <SessionScrollButtonDiv theme={themeContext}>
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Chevron} iconType="chevron"
iconSize={'huge'} iconSize={'huge'}
isHidden={!show} isHidden={!show}
onClick={props.onClick} onClick={props.onClick}

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { getConversationsCount } from '../../state/selectors/conversations'; import { getConversationsCount } from '../../state/selectors/conversations';
import { SessionIconButton, SessionIconType } from './icon'; import { SessionIconButton } from './icon';
type Props = { type Props = {
searchString: string; searchString: string;
@ -21,7 +21,7 @@ export const SessionSearchInput = (props: Props) => {
return ( return (
<div className="session-search-input"> <div className="session-search-input">
<SessionIconButton iconSize={'medium'} iconType={SessionIconType.Search} /> <SessionIconButton iconSize={'medium'} iconType="search" />
<input <input
value={searchString} value={searchString}
onChange={e => onChange(e.target.value)} onChange={e => onChange(e.target.value)}

@ -57,19 +57,19 @@ export const SessionToast = (props: Props) => {
if (!toastIcon) { if (!toastIcon) {
switch (type) { switch (type) {
case SessionToastType.Info: case SessionToastType.Info:
toastIcon = SessionIconType.Info; toastIcon = 'info';
break; break;
case SessionToastType.Success: case SessionToastType.Success:
toastIcon = SessionIconType.Check; toastIcon = 'check';
break; break;
case SessionToastType.Error: case SessionToastType.Error:
toastIcon = SessionIconType.Error; toastIcon = 'error';
break; break;
case SessionToastType.Warning: case SessionToastType.Warning:
toastIcon = SessionIconType.Warning; toastIcon = 'warning';
break; break;
default: default:
toastIcon = SessionIconType.Info; toastIcon = 'info';
} }
} }

@ -1,7 +1,7 @@
import React, { useEffect, useRef } from 'react'; import React, { useEffect, useRef } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { SessionIconButton, SessionIconType } from './icon/'; import { SessionIconButton } from './icon/';
import { SessionButton } from './SessionButton'; import { SessionButton } from './SessionButton';
import { useTheme } from 'styled-components'; import { useTheme } from 'styled-components';
@ -85,7 +85,7 @@ export const SessionWrapperModal = (props: SessionWrapperModalType) => {
<div className="session-modal__header__close"> <div className="session-modal__header__close">
{showExitIcon ? ( {showExitIcon ? (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Exit} iconType="exit"
iconSize={'small'} iconSize={'small'}
onClick={props.onClose} onClick={props.onClose}
theme={theme} theme={theme}

@ -4,7 +4,7 @@ import _, { debounce } from 'lodash';
import { AttachmentType } from '../../../types/Attachment'; import { AttachmentType } from '../../../types/Attachment';
import * as MIME from '../../../types/MIME'; import * as MIME from '../../../types/MIME';
import { SessionIconButton, SessionIconType } from '../icon'; import { SessionIconButton } from '../icon';
import { SessionEmojiPanel } from './SessionEmojiPanel'; import { SessionEmojiPanel } from './SessionEmojiPanel';
import { SessionRecording } from './SessionRecording'; import { SessionRecording } from './SessionRecording';
@ -92,7 +92,7 @@ const AddStagedAttachmentButton = (props: { onClick: () => void }) => {
const theme = useTheme(); const theme = useTheme();
return ( return (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.PlusThin} iconType="plusThin"
backgroundColor={theme.colors.composeViewButtonBackground} backgroundColor={theme.colors.composeViewButtonBackground}
iconSize={'huge2'} iconSize={'huge2'}
borderRadius="300px" borderRadius="300px"
@ -107,7 +107,7 @@ const StartRecordingButton = (props: { onClick: () => void }) => {
return ( return (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Microphone} iconType="microphone"
iconSize={'huge2'} iconSize={'huge2'}
backgroundColor={theme.colors.composeViewButtonBackground} backgroundColor={theme.colors.composeViewButtonBackground}
borderRadius="300px" borderRadius="300px"
@ -121,7 +121,7 @@ const ToggleEmojiButton = (props: { onClick: () => void }) => {
const theme = useTheme(); const theme = useTheme();
return ( return (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Emoji} iconType="emoji"
backgroundColor={theme.colors.composeViewButtonBackground} backgroundColor={theme.colors.composeViewButtonBackground}
iconSize={'huge2'} iconSize={'huge2'}
borderRadius="300px" borderRadius="300px"
@ -136,7 +136,7 @@ const SendMessageButton = (props: { onClick: () => void }) => {
return ( return (
<div className="send-message-button"> <div className="send-message-button">
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Send} iconType="send"
backgroundColor={theme.colors.composeViewButtonBackground} backgroundColor={theme.colors.composeViewButtonBackground}
iconSize={'huge2'} iconSize={'huge2'}
iconRotation={90} iconRotation={90}

@ -1,7 +1,7 @@
import React, { useContext } from 'react'; import React, { useContext } from 'react';
import styled, { ThemeContext } from 'styled-components'; import styled, { ThemeContext } from 'styled-components';
import { Flex } from '../../basic/Flex'; import { Flex } from '../../basic/Flex';
import { SessionIcon, SessionIconType } from '../icon'; import { SessionIcon } from '../icon';
const DropZoneContainer = styled.div` const DropZoneContainer = styled.div`
display: inline-block; display: inline-block;
@ -31,11 +31,7 @@ export const SessionFileDropzone = () => {
<DropZoneContainer> <DropZoneContainer>
<DropZoneWithBorder> <DropZoneWithBorder>
<Flex container={true} justifyContent="space-around" height="100%" alignItems="center"> <Flex container={true} justifyContent="space-around" height="100%" alignItems="center">
<SessionIcon <SessionIcon iconSize={'max'} iconType="circlePlus" theme={themeContext} />
iconSize={'max'}
iconType={SessionIconType.CirclePlus}
theme={themeContext}
/>
</Flex> </Flex>
</DropZoneWithBorder> </DropZoneWithBorder>
</DropZoneContainer> </DropZoneContainer>

@ -19,7 +19,6 @@ export const SessionMessagesList = (props: {
scrollToQuoteMessage: (options: QuoteClickOptions) => Promise<void>; scrollToQuoteMessage: (options: QuoteClickOptions) => Promise<void>;
}) => { }) => {
const messagesProps = useSelector(getSortedMessagesTypesOfSelectedConversation); const messagesProps = useSelector(getSortedMessagesTypesOfSelectedConversation);
return ( return (
<> <>
{messagesProps.map(messageProps => { {messagesProps.map(messageProps => {

@ -1,6 +1,6 @@
import React, { useCallback } from 'react'; import React, { useCallback } from 'react';
import { Flex } from '../../basic/Flex'; import { Flex } from '../../basic/Flex';
import { SessionIcon, SessionIconButton, SessionIconType } from '../icon'; import { SessionIcon, SessionIconButton } from '../icon';
import styled, { useTheme } from 'styled-components'; import styled, { useTheme } from 'styled-components';
import { getAlt, isAudio } from '../../../types/Attachment'; import { getAlt, isAudio } from '../../../types/Attachment';
import { Image } from '../../conversation/Image'; import { Image } from '../../conversation/Image';
@ -77,7 +77,7 @@ export const SessionQuotedMessageComposition = () => {
> >
<ReplyingTo>{window.i18n('replyingToMessage')}</ReplyingTo> <ReplyingTo>{window.i18n('replyingToMessage')}</ReplyingTo>
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Exit} iconType="exit"
iconSize={'small'} iconSize={'small'}
onClick={removeQuotedMessage} onClick={removeQuotedMessage}
theme={theme} theme={theme}
@ -98,7 +98,7 @@ export const SessionQuotedMessageComposition = () => {
)} )}
{hasAudioAttachment && ( {hasAudioAttachment && (
<SessionIcon iconType={SessionIconType.Microphone} iconSize={'huge'} theme={theme} /> <SessionIcon iconType="microphone" iconSize="huge" theme={theme} />
)} )}
</Flex> </Flex>
</QuotedMessageCompositionReply> </QuotedMessageCompositionReply>

@ -2,7 +2,7 @@ import React from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import moment from 'moment'; import moment from 'moment';
import { SessionIconButton, SessionIconType } from '../icon'; import { SessionIconButton } from '../icon';
import { Constants } from '../../../session'; import { Constants } from '../../../session';
import { ToastUtils } from '../../../session/utils'; import { ToastUtils } from '../../../session/utils';
import autoBind from 'auto-bind'; import autoBind from 'auto-bind';
@ -129,38 +129,28 @@ class SessionRecordingInner extends React.Component<Props, State> {
<StyledFlexWrapper marginHorizontal={Constants.UI.SPACING.marginXs}> <StyledFlexWrapper marginHorizontal={Constants.UI.SPACING.marginXs}>
{isRecording && ( {isRecording && (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Pause} iconType="pause"
iconSize={'medium'} iconSize={'medium'}
iconColor={Constants.UI.COLORS.DANGER_ALT} iconColor={Constants.UI.COLORS.DANGER_ALT}
onClick={actionPauseFn} onClick={actionPauseFn}
/> />
)} )}
{actionPauseAudio && ( {actionPauseAudio && (
<SessionIconButton <SessionIconButton iconType="pause" iconSize={'medium'} onClick={actionPauseFn} />
iconType={SessionIconType.Pause}
iconSize={'medium'}
onClick={actionPauseFn}
/>
)} )}
{hasRecordingAndPaused && ( {hasRecordingAndPaused && (
<SessionIconButton <SessionIconButton iconType="play" iconSize={'medium'} onClick={this.playAudio} />
iconType={SessionIconType.Play}
iconSize={'medium'}
onClick={this.playAudio}
/>
)} )}
{hasRecording && ( {hasRecording && (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Delete} iconType="delete"
iconSize={'medium'} iconSize={'medium'}
onClick={this.onDeleteVoiceMessage} onClick={this.onDeleteVoiceMessage}
/> />
)} )}
</StyledFlexWrapper> </StyledFlexWrapper>
{actionDefault && ( {actionDefault && <SessionIconButton iconType="microphone" iconSize={'huge'} />}
<SessionIconButton iconType={SessionIconType.Microphone} iconSize={'huge'} />
)}
</div> </div>
{hasRecording && !isRecording ? ( {hasRecording && !isRecording ? (
@ -184,7 +174,7 @@ class SessionRecordingInner extends React.Component<Props, State> {
)} )}
> >
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Send} iconType="send"
iconSize={'large'} iconSize={'large'}
iconRotation={90} iconRotation={90}
onClick={this.onSendVoiceMessage} onClick={this.onSendVoiceMessage}

@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { SessionIconButton, SessionIconType } from '../icon'; import { SessionIconButton } from '../icon';
import { Avatar, AvatarSize } from '../../Avatar'; import { Avatar, AvatarSize } from '../../Avatar';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../SessionButton'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../SessionButton';
import { SessionDropdown } from '../SessionDropdown'; import { SessionDropdown } from '../SessionDropdown';
@ -135,7 +135,7 @@ const HeaderItem = () => {
return ( return (
<div className="group-settings-header"> <div className="group-settings-header">
<SessionIconButton <SessionIconButton
iconType={SessionIconType.Chevron} iconType="chevron"
iconSize={'medium'} iconSize={'medium'}
iconRotation={270} iconRotation={270}
onClick={() => { onClick={() => {
@ -153,8 +153,8 @@ const HeaderItem = () => {
<div className="invite-friends-container"> <div className="invite-friends-container">
{showInviteContacts && ( {showInviteContacts && (
<SessionIconButton <SessionIconButton
iconType={SessionIconType.AddUser} iconType="addUser"
iconSize={'medium'} iconSize="medium"
onClick={() => { onClick={() => {
if (selectedConversation) { if (selectedConversation) {
showInviteContactByConvoId(selectedConversation.id); showInviteContactByConvoId(selectedConversation.id);

File diff suppressed because one or more lines are too long

@ -20,7 +20,7 @@ import { unblockConvoById } from '../../../interactions/conversationInteractions
import { toggleAudioAutoplay } from '../../../state/ducks/userConfig'; import { toggleAudioAutoplay } from '../../../state/ducks/userConfig';
import { sessionPassword, updateConfirmModal } from '../../../state/ducks/modalDialog'; import { sessionPassword, updateConfirmModal } from '../../../state/ducks/modalDialog';
import { PasswordAction } from '../../dialog/SessionPasswordDialog'; import { PasswordAction } from '../../dialog/SessionPasswordDialog';
import { SessionIconButton, SessionIconType } from '../icon'; import { SessionIconButton } from '../icon';
import { ToastUtils } from '../../../session/utils'; import { ToastUtils } from '../../../session/utils';
export enum SessionSettingCategory { export enum SessionSettingCategory {
@ -250,11 +250,7 @@ class SettingsViewInner extends React.Component<SettingsViewProps, State> {
<div className="session-settings__version-info"> <div className="session-settings__version-info">
<span className="text-selectable">v{window.versionInfo.version}</span> <span className="text-selectable">v{window.versionInfo.version}</span>
<span> <span>
<SessionIconButton <SessionIconButton iconSize={'medium'} iconType="oxen" onClick={openOxenWebsite} />
iconSize={'medium'}
iconType={SessionIconType.Oxen}
onClick={openOxenWebsite}
/>
</span> </span>
<span className="text-selectable">{window.versionInfo.commitHash}</span> <span className="text-selectable">{window.versionInfo.commitHash}</span>
</div> </div>

@ -172,7 +172,7 @@ export function pushYouLeftTheGroup() {
} }
export function pushDeleted() { export function pushDeleted() {
pushToastSuccess('deleted', window.i18n('deleted'), undefined, SessionIconType.Check); pushToastSuccess('deleted', window.i18n('deleted'), undefined, 'check');
} }
export function pushCannotRemoveCreatorFromGroup() { export function pushCannotRemoveCreatorFromGroup() {

@ -16,40 +16,40 @@ export function getIncrement(length: number): number {
export function getTimerBucketIcon(expiration: number, length: number): SessionIconType { export function getTimerBucketIcon(expiration: number, length: number): SessionIconType {
const delta = expiration - Date.now(); const delta = expiration - Date.now();
if (delta < 0) { if (delta < 0) {
return SessionIconType.Timer60; return 'timer60';
} }
if (delta > length) { if (delta > length) {
return SessionIconType.Timer00; return 'timer00';
} }
const bucket = Math.round((delta / length) * 12); const bucket = Math.round((delta / length) * 12);
const padded = padStart(String(bucket * 5), 2, '0'); const padded = padStart(String(bucket * 5), 2, '0');
switch (padded) { switch (padded) {
case '00': case '00':
return SessionIconType.Timer00; return 'timer00';
case '05': case '05':
return SessionIconType.Timer05; return 'timer05';
case '10': case '10':
return SessionIconType.Timer10; return 'timer10';
case '15': case '15':
return SessionIconType.Timer15; return 'timer15';
case '20': case '20':
return SessionIconType.Timer20; return 'timer20';
case '25': case '25':
return SessionIconType.Timer25; return 'timer25';
case '30': case '30':
return SessionIconType.Timer30; return 'timer30';
case '35': case '35':
return SessionIconType.Timer35; return 'timer35';
case '40': case '40':
return SessionIconType.Timer40; return 'timer40';
case '45': case '45':
return SessionIconType.Timer45; return 'timer45';
case '50': case '50':
return SessionIconType.Timer50; return 'timer50';
case '55': case '55':
return SessionIconType.Timer55; return 'timer55';
default: default:
return SessionIconType.Timer60; return 'timer60';
} }
} }

Loading…
Cancel
Save