diff --git a/preload.js b/preload.js index 248e71054..14050ccf2 100644 --- a/preload.js +++ b/preload.js @@ -30,7 +30,8 @@ window.getNodeVersion = () => configAny.node_version; window.sessionFeatureFlags = { useOnionRequests: true, useTestNet: isTestNet() || isTestIntegration(), - useClosedGroupV2: true, // TODO DO NOT MERGE Remove after QA debugger + useClosedGroupV2: true, // TODO DO NOT MERGE Remove after QA + useClosedGroupV2QAButtons: true, // TODO DO NOT MERGE Remove after QA debug: { debugLogging: !_.isEmpty(process.env.SESSION_DEBUG), debugLibsessionDumps: !_.isEmpty(process.env.SESSION_DEBUG_LIBSESSION_DUMPS), diff --git a/ts/components/MemberListItem.tsx b/ts/components/MemberListItem.tsx index 4cc5e1d59..44cfa2b97 100644 --- a/ts/components/MemberListItem.tsx +++ b/ts/components/MemberListItem.tsx @@ -202,7 +202,7 @@ const ResendInviteButton = ({ buttonType={SessionButtonType.Solid} text={window.i18n('resend')} onClick={() => { - void GroupInvite.addJob({ groupPk, member: pubkey }); // TODO audric: do we need to take care if that user was invited withHistory or not + void GroupInvite.addJob({ groupPk, member: pubkey }); }} /> ); diff --git a/ts/components/conversation/right-panel/overlay/OverlayRightPanelSettings.tsx b/ts/components/conversation/right-panel/overlay/OverlayRightPanelSettings.tsx index 94646a220..e4901091a 100644 --- a/ts/components/conversation/right-panel/overlay/OverlayRightPanelSettings.tsx +++ b/ts/components/conversation/right-panel/overlay/OverlayRightPanelSettings.tsx @@ -25,8 +25,9 @@ import { import { Constants } from '../../../../session'; import { ConvoHub } from '../../../../session/conversations'; import { PubKey } from '../../../../session/types'; -import { isDevProd, isTestIntegration } from '../../../../shared/env_vars'; +import { hasClosedGroupV2QAButtons } from '../../../../shared/env_vars'; import { closeRightPanel } from '../../../../state/ducks/conversations'; +import { groupInfoActions } from '../../../../state/ducks/metaGroups'; import { updateConfirmModal } from '../../../../state/ducks/modalDialog'; import { resetRightOverlayMode, setRightOverlayMode } from '../../../../state/ducks/section'; import { @@ -52,7 +53,6 @@ import { PanelButtonGroup, PanelIconButton } from '../../../buttons'; import { MediaItemType } from '../../../lightbox/LightboxGallery'; import { MediaGallery } from '../../media-gallery/MediaGallery'; import { Header, StyledScrollContainer } from './components'; -import { groupInfoActions } from '../../../../state/ducks/metaGroups'; async function getMediaGalleryProps(conversationId: string): Promise<{ documents: Array; @@ -199,7 +199,7 @@ const StyledName = styled.h4` const DestroyGroupForAllMembersButton = () => { const dispatch = useDispatch(); const groupPk = useSelectedConversationKey(); - if (groupPk && PubKey.is03Pubkey(groupPk) && (isDevProd() || isTestIntegration())) { + if (groupPk && PubKey.is03Pubkey(groupPk) && hasClosedGroupV2QAButtons()) { return ( { /> )} - {isDevProd() && isGroupV2 ? ( + {hasClosedGroupV2QAButtons() && isGroupV2 ? ( { if (!PubKey.is03Pubkey(selectedConvoKey)) { throw new Error('triggerFakeAvatarUpdate needs a 03 pubkey'); diff --git a/ts/components/dialog/UpdateGroupMembersDialog.tsx b/ts/components/dialog/UpdateGroupMembersDialog.tsx index f8624e628..04ef32f2f 100644 --- a/ts/components/dialog/UpdateGroupMembersDialog.tsx +++ b/ts/components/dialog/UpdateGroupMembersDialog.tsx @@ -27,12 +27,12 @@ import { useSet } from '../../hooks/useSet'; import { ConvoHub } from '../../session/conversations'; import { ClosedGroup } from '../../session/group/closed-group'; import { PubKey } from '../../session/types'; +import { hasClosedGroupV2QAButtons } from '../../shared/env_vars'; import { groupInfoActions } from '../../state/ducks/metaGroups'; import { useMemberGroupChangePending } from '../../state/selectors/groups'; import { useSelectedIsGroupV2 } from '../../state/selectors/selectedConversation'; import { SessionSpinner } from '../basic/SessionSpinner'; import { SessionToggle } from '../basic/SessionToggle'; -import { isDevProd, isTestIntegration } from '../../shared/env_vars'; type Props = { conversationId: string; @@ -275,7 +275,7 @@ export const UpdateGroupMembersDialog = (props: Props) => { return ( - {isDevProd() || isTestIntegration() ? ( + {hasClosedGroupV2QAButtons() ? ( <> Also remove messages: { // /* TODO */ // }; diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts index da7e9f7be..0198d9119 100644 --- a/ts/models/conversation.ts +++ b/ts/models/conversation.ts @@ -1122,10 +1122,6 @@ export class ConversationModel extends Backbone.Model { updatedExpirationSeconds: expireUpdate.expireTimer, }); - // TODO audric debugger, make pushChangesToGroupSwarmIfNeeded take extraStoreRequests - // but we'd also need to add a way to make a store subrequest from a v2groupMessage. - // we should be able to simplify a fair bit the GroupSyncJob file. - // i.e. we need an easy way (separate file) to wrap a message into a subrequest await GroupSync.pushChangesToGroupSwarmIfNeeded({ groupPk: this.id, revokeSubRequest: null, @@ -2705,7 +2701,6 @@ async function commitConversationAndRefreshWrapper(id: string) { const savedDetails = await Data.saveConversation(convo.attributes); await convo.refreshInMemoryDetails(savedDetails); - // Performance impact on this is probably to be pretty bad. We might want to push for that DB refactor to be done sooner so we do not need to fetch info from the DB anymore for (let index = 0; index < LibSessionUtil.requiredUserVariants.length; index++) { const variant = LibSessionUtil.requiredUserVariants[index]; diff --git a/ts/react.d.ts b/ts/react.d.ts index abfbdb49a..4777cef09 100644 --- a/ts/react.d.ts +++ b/ts/react.d.ts @@ -67,15 +67,15 @@ declare module 'react' { | 'privacy-section' // settings menu item types - | 'messageRequests-settings-menu-item' // needs to be tweaked - | 'recoveryPhrase-settings-menu-item' // needs to be tweaked - | 'privacy-settings-menu-item' // needs to be tweaked - | 'notifications-settings-menu-item' // needs to be tweaked - | 'conversations-settings-menu-item' // needs to be tweaked - | 'appearance-settings-menu-item' // needs to be tweaked - | 'help-settings-menu-item' // needs to be tweaked - | 'permissions-settings-menu-item' // needs to be tweaked - | 'clearData-settings-menu-item' // TODO AUDRIC needs to be tweaked + | 'messageRequests-settings-menu-item' + | 'recoveryPhrase-settings-menu-item' + | 'privacy-settings-menu-item' + | 'notifications-settings-menu-item' + | 'conversations-settings-menu-item' + | 'appearance-settings-menu-item' + | 'help-settings-menu-item' + | 'permissions-settings-menu-item' + | 'clearData-settings-menu-item' // timer options | 'time-option-0' diff --git a/ts/shared/env_vars.ts b/ts/shared/env_vars.ts index 83538bc5a..8cfb2c64b 100644 --- a/ts/shared/env_vars.ts +++ b/ts/shared/env_vars.ts @@ -25,3 +25,7 @@ export function isTestNet() { export function isTestIntegration() { return envAppInstanceIncludes('test-integration') || isCI(); // when running on CI, we always want the 'test-integration' behavior } + +export function hasClosedGroupV2QAButtons() { + return !!window.sessionFeatureFlags.useClosedGroupV2QAButtons +} \ No newline at end of file diff --git a/ts/window.d.ts b/ts/window.d.ts index 195871940..06b052c3c 100644 --- a/ts/window.d.ts +++ b/ts/window.d.ts @@ -30,6 +30,7 @@ declare global { useOnionRequests: boolean; useTestNet: boolean; useClosedGroupV2: boolean; + useClosedGroupV2QAButtons: boolean; debug: { debugLogging: boolean; debugLibsessionDumps: boolean;