PR changes. Disabling message requests behind feature flags.

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

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

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

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

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

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

@ -716,12 +716,6 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
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) {
throw new Error('sendMessageJob() sent_at must be set.');
}
@ -743,7 +737,7 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
const updateApprovalNeeded =
!this.isApproved() && (this.isPrivate() || this.isMediumGroup() || this.isClosedGroup());
if (updateApprovalNeeded && !unapprove) {
if (updateApprovalNeeded) {
this.setIsApproved(true);
await syncConfigurationIfNeeded(true);
}

@ -54,16 +54,6 @@ async function handleGroupsAndContactsFromConfigMessage(
envelope: EnvelopePlus,
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({
id: 'hasSyncedInitialConfigurationItem',
value: true,

@ -403,7 +403,6 @@ export async function isMessageDuplicate({
return false;
}
const filteredResult = [result].filter((m: any) => m.attributes.body === message.body);
console.warn({ filteredResult });
return filteredResult.some(m => isDuplicate(m, message, source));
} catch (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
if (conversation.isPublic && (!conversation.name || conversation.name === 'Unknown group')) {
continue;

1
ts/window.d.ts vendored

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

Loading…
Cancel
Save