feat: added dismiss button to NoticeBanner

pull/2660/head
William Grant 3 years ago
parent 2f4c0114aa
commit 99412beaf3

@ -1,21 +1,33 @@
import React from 'react'; import React from 'react';
import styled from 'styled-components'; import styled from 'styled-components';
import { Flex } from './basic/Flex'; import { Flex } from './basic/Flex';
import { SessionIconButton } from './icon';
const StyledNoticeBanner = styled(Flex)` const StyledNoticeBanner = styled(Flex)`
position: relative;
background-color: var(--primary-color); background-color: var(--primary-color);
color: var(--background-primary-color); color: var(--background-primary-color);
font-size: var(--font-size-lg); font-size: var(--font-size-lg);
padding: var(--margins-xs) var(--margins-sm); padding: var(--margins-xs) var(--margins-sm);
text-align: center; text-align: center;
.session-icon-button {
position: absolute;
right: var(--margins-sm);
}
`;
const StyledText = styled.span`
margin-right: var(--margins-lg);
`; `;
type NoticeBannerProps = { type NoticeBannerProps = {
text: string; text: string;
dismissCallback: () => void;
}; };
export const NoticeBanner = (props: NoticeBannerProps) => { export const NoticeBanner = (props: NoticeBannerProps) => {
const { text } = props; const { text, dismissCallback } = props;
return ( return (
<StyledNoticeBanner <StyledNoticeBanner
@ -24,7 +36,16 @@ export const NoticeBanner = (props: NoticeBannerProps) => {
justifyContent={'center'} justifyContent={'center'}
alignItems={'center'} alignItems={'center'}
> >
{text} <StyledText>{text}</StyledText>
<SessionIconButton
iconType="exit"
iconColor="inherit"
iconSize="small"
onClick={event => {
event.preventDefault();
dismissCallback();
}}
/>
</StyledNoticeBanner> </StyledNoticeBanner>
); );
}; };

@ -261,6 +261,11 @@ export class SessionConversation extends React.Component<Props, State> {
text={window.i18n('disappearingMessagesModeOutdated', [ text={window.i18n('disappearingMessagesModeOutdated', [
selectedConversation.hasOutdatedClient, selectedConversation.hasOutdatedClient,
])} ])}
dismissCallback={() => {
const conversation = getConversationController().get(selectedConversation.id);
conversation.set({ hasOutdatedClient: undefined });
conversation.commit();
}}
/> />
)} )}
</div> </div>

Loading…
Cancel
Save