PR changes. Disabling message requests behind feature flags.

pull/2000/head
warrickct 4 years ago
parent e5a203a48e
commit 2eab74246b

@ -51,6 +51,7 @@ window.lokiFeatureFlags = {
padOutgoingAttachments: true, padOutgoingAttachments: true,
enablePinConversations: true, enablePinConversations: true,
useUnsendRequests: false, useUnsendRequests: false,
useMessageRequests: false,
}; };
window.isBeforeVersion = (toCheck, baseVersion) => { window.isBeforeVersion = (toCheck, baseVersion) => {

@ -303,10 +303,6 @@ const ConversationListItem = (props: Props) => {
const handleConversationAccept = async () => { const handleConversationAccept = async () => {
const conversationToApprove = await getConversationById(conversationId); const conversationToApprove = await getConversationById(conversationId);
await conversationToApprove?.setIsApproved(true); await conversationToApprove?.setIsApproved(true);
console.warn({ convoAfterSetIsApproved: conversationToApprove });
// TODO: Send sync message to other devices. Using config message
// await syncConfigurationIfNeeded(true);
await forceSyncConfigurationNowIfNeeded(); await forceSyncConfigurationNowIfNeeded();
}; };
@ -315,10 +311,6 @@ const ConversationListItem = (props: Props) => {
<div <div
role="button" role="button"
onMouseDown={openConvo} onMouseDown={openConvo}
// onMouseUp={e => {
// e.stopPropagation();
// e.preventDefault();
// }}
onContextMenu={(e: any) => { onContextMenu={(e: any) => {
contextMenu.show({ contextMenu.show({
id: triggerId, id: triggerId,

@ -30,9 +30,6 @@ const InnerLeftPaneMessageSection = () => {
const lists = showSearch ? undefined : useSelector(getLeftPaneLists); const lists = showSearch ? undefined : useSelector(getLeftPaneLists);
// tslint:disable: use-simple-attributes // tslint:disable: use-simple-attributes
// const
return ( return (
<LeftPaneMessageSection <LeftPaneMessageSection
conversations={lists?.conversations || []} conversations={lists?.conversations || []}

@ -56,8 +56,6 @@ interface State {
loading: boolean; loading: boolean;
overlay: false | SessionClosableOverlayType; overlay: false | SessionClosableOverlayType;
valuePasted: string; valuePasted: string;
approvedConversations: any[];
unapprovedConversations: any[];
} }
export class LeftPaneMessageSection extends React.Component<Props, State> { export class LeftPaneMessageSection extends React.Component<Props, State> {
@ -66,19 +64,12 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
public constructor(props: Props) { public constructor(props: Props) {
super(props); super(props);
const approvedConversations = props.conversations?.filter(convo => Boolean(convo.isApproved));
const unapprovedConversations = props.conversations?.filter(
convo => !Boolean(convo.isApproved)
);
console.warn('convos updated'); console.warn('convos updated');
this.state = { this.state = {
loading: false, loading: false,
overlay: false, overlay: false,
valuePasted: '', valuePasted: '',
approvedConversations: approvedConversations || [],
unapprovedConversations: unapprovedConversations || [],
}; };
autoBind(this); autoBind(this);
@ -87,23 +78,19 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
public renderRow = ({ index, key, style }: RowRendererParamsType): JSX.Element | null => { public renderRow = ({ index, key, style }: RowRendererParamsType): JSX.Element | null => {
const { conversations } = this.props; const { conversations } = this.props;
const conversationsToShow = conversations?.filter(async c => {
return ( //assume conversations that have been marked unapproved should be filtered out by selector.
Boolean(c.isApproved) === true && if (!conversations) {
(await BlockedNumberController.isBlockedAsync(c.id)) === false
);
});
if (!conversations || !conversationsToShow) {
throw new Error('renderRow: Tried to render without conversations'); throw new Error('renderRow: Tried to render without conversations');
} }
// TODO: make this only filtered when the setting is enabled
const messageRequestsEnabled = const messageRequestsEnabled =
window.inboxStore?.getState().userConfig.messageRequests === true; window.inboxStore?.getState().userConfig.messageRequests === true &&
window?.lokiFeatureFlags?.useMessageRequests;
let conversation; let conversation;
if (conversationsToShow?.length) { if (conversations?.length) {
conversation = conversationsToShow[index]; conversation = conversations[index];
} }
if (!conversation) { if (!conversation) {
@ -129,10 +116,6 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
throw new Error('render: must provided conversations if no search results are provided'); throw new Error('render: must provided conversations if no search results are provided');
} }
// TODO: make selectors for this instead.
// TODO: only filter conversations if setting for requests is applied
// TODO: readjust to be approved length as only approved convos will show here.
const length = this.props.conversations ? this.props.conversations.length : 0; const length = this.props.conversations ? this.props.conversations.length : 0;
const listKey = 0; const listKey = 0;
@ -145,7 +128,6 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
{({ height, width }) => ( {({ height, width }) => (
<List <List
className="module-left-pane__virtual-list" className="module-left-pane__virtual-list"
// conversations={this.state.approvedConversations}
conversations={this.props.conversations} conversations={this.props.conversations}
height={height} height={height}
rowCount={length} rowCount={length}
@ -197,7 +179,9 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
onChange={this.updateSearch} onChange={this.updateSearch}
placeholder={window.i18n('searchFor...')} placeholder={window.i18n('searchFor...')}
/> />
<MessageRequestsBanner handleOnClick={this.handleMessageRequestsClick} /> {window.lokiFeatureFlags.useMessageRequests ? (
<MessageRequestsBanner handleOnClick={this.handleMessageRequestsClick} />
) : null}
{this.renderList()} {this.renderList()}
{this.renderBottomButtons()} {this.renderBottomButtons()}
</div> </div>

@ -297,9 +297,7 @@ export class SessionClosableOverlay extends React.Component<Props, State> {
*/ */
const MessageRequestList = () => { const MessageRequestList = () => {
const lists = useSelector(getLeftPaneLists); const lists = useSelector(getLeftPaneLists);
// const validConversationRequests = lists?.conversations.filter(c => {
const validConversationRequests = lists?.conversationRequests; const validConversationRequests = lists?.conversationRequests;
console.warn({ unapprovedConversationsListConstructor: validConversationRequests });
return ( return (
<div className="message-request-list__container"> <div className="message-request-list__container">
{validConversationRequests.map(conversation => { {validConversationRequests.map(conversation => {
@ -309,7 +307,6 @@ const MessageRequestList = () => {
); );
}; };
// const MessageRequestListItem = (props: { conversation: ConversationModel }) => {
const MessageRequestListItem = (props: { conversation: ConversationListItemProps }) => { const MessageRequestListItem = (props: { conversation: ConversationListItemProps }) => {
const { conversation } = props; const { conversation } = props;
return ( return (

@ -716,12 +716,6 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
const sentAt = message.get('sent_at'); const sentAt = message.get('sent_at');
// TODO: msgreq for debugging
const unapprove = message.get('body')?.includes('unapprove');
if (unapprove) {
await this.setIsApproved(false);
}
if (!sentAt) { if (!sentAt) {
throw new Error('sendMessageJob() sent_at must be set.'); throw new Error('sendMessageJob() sent_at must be set.');
} }
@ -743,7 +737,7 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
const updateApprovalNeeded = const updateApprovalNeeded =
!this.isApproved() && (this.isPrivate() || this.isMediumGroup() || this.isClosedGroup()); !this.isApproved() && (this.isPrivate() || this.isMediumGroup() || this.isClosedGroup());
if (updateApprovalNeeded && !unapprove) { if (updateApprovalNeeded) {
this.setIsApproved(true); this.setIsApproved(true);
await syncConfigurationIfNeeded(true); await syncConfigurationIfNeeded(true);
} }

@ -54,16 +54,6 @@ async function handleGroupsAndContactsFromConfigMessage(
envelope: EnvelopePlus, envelope: EnvelopePlus,
configMessage: SignalService.ConfigurationMessage configMessage: SignalService.ConfigurationMessage
) { ) {
// const didWeHandleAConfigurationMessageAlready =
// (await getItemById(hasSyncedInitialConfigurationItem))?.value || false;
// TODO: debug
// if (didWeHandleAConfigurationMessageAlready) {
// window?.log?.info(
// 'Dropping configuration contacts/groups change as we already handled one... '
// );
// return;
// }
await createOrUpdateItem({ await createOrUpdateItem({
id: 'hasSyncedInitialConfigurationItem', id: 'hasSyncedInitialConfigurationItem',
value: true, value: true,

@ -403,7 +403,6 @@ export async function isMessageDuplicate({
return false; return false;
} }
const filteredResult = [result].filter((m: any) => m.attributes.body === message.body); const filteredResult = [result].filter((m: any) => m.attributes.body === message.body);
console.warn({ filteredResult });
return filteredResult.some(m => isDuplicate(m, message, source)); return filteredResult.some(m => isDuplicate(m, message, source));
} catch (error) { } catch (error) {
window?.log?.error('isMessageDuplicate error:', Errors.toLogFormat(error)); window?.log?.error('isMessageDuplicate error:', Errors.toLogFormat(error));

@ -304,6 +304,10 @@ export const _getLeftPaneLists = (
}; };
} }
if (!Boolean(conversation.isApproved) === true && window.lokiFeatureFlags.useMessageRequests) {
continue;
}
// Add Open Group to list as soon as the name has been set // Add Open Group to list as soon as the name has been set
if (conversation.isPublic && (!conversation.name || conversation.name === 'Unknown group')) { if (conversation.isPublic && (!conversation.name || conversation.name === 'Unknown group')) {
continue; continue;

1
ts/window.d.ts vendored

@ -48,6 +48,7 @@ declare global {
padOutgoingAttachments: boolean; padOutgoingAttachments: boolean;
enablePinConversations: boolean; enablePinConversations: boolean;
useUnsendRequests: boolean; useUnsendRequests: boolean;
useMessageRequests: boolean;
}; };
lokiSnodeAPI: LokiSnodeAPI; lokiSnodeAPI: LokiSnodeAPI;
onLogin: any; onLogin: any;

Loading…
Cancel
Save