Skip to content

Commit 5f1a121

Browse files
authored
Merge pull request #59221 from software-mansion-labs/side-pane-feature-flag
Add const / permissions function for help side panel beta
2 parents b8b68af + c967cd8 commit 5f1a121

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

src/CONST.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,7 @@ const CONST = {
772772
NEW_DOT_TALK_TO_AI_SALES: 'newDotTalkToAISales',
773773
CUSTOM_RULES: 'customRules',
774774
TABLE_REPORT_VIEW: 'tableReportView',
775+
HELP_SIDE_PANEL: 'newDotHelpSidePanel',
775776
RECEIPT_LINE_ITEMS: 'receiptLineItems',
776777
},
777778
BUTTON_STATES: {

src/hooks/useSidePane.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ function useSidePaneDisplayStatus() {
2020
const {isExtraLargeScreenWidth, shouldUseNarrowLayout} = useResponsiveLayout();
2121
const [sidePaneNVP] = useOnyx(ONYXKEYS.NVP_SIDE_PANE);
2222
const [language] = useOnyx(ONYXKEYS.NVP_PREFERRED_LOCALE);
23+
const [canUseHelpSidePanel = false] = useOnyx(ONYXKEYS.BETAS, {selector: (betas) => !!betas?.includes(CONST.BETAS.HELP_SIDE_PANEL)});
2324
const [isModalCenteredVisible = false] = useOnyx(ONYXKEYS.MODAL, {
2425
selector: (modal) =>
2526
modal?.type === CONST.MODAL.MODAL_TYPE.CENTERED_SWIPABLE_TO_RIGHT ||
@@ -35,14 +36,14 @@ function useSidePaneDisplayStatus() {
3536
// - NVP is not set or it is false
3637
// - language is unsupported
3738
// - modal centered is visible
38-
const shouldHideSidePane = !isSidePaneVisible || isLanguageUnsupported || isModalCenteredVisible;
39-
const isSidePaneHiddenOrLargeScreen = !isSidePaneVisible || isLanguageUnsupported || isExtraLargeScreenWidth;
39+
const shouldHideSidePane = !isSidePaneVisible || isLanguageUnsupported || isModalCenteredVisible || !canUseHelpSidePanel;
40+
const isSidePaneHiddenOrLargeScreen = !isSidePaneVisible || isLanguageUnsupported || isExtraLargeScreenWidth || !canUseHelpSidePanel;
4041

4142
// The help button is hidden when:
42-
// - side pane nvp is not set
43+
// - the user is not part of the corresponding beta
4344
// - side pane is displayed currently
4445
// - language is unsupported
45-
const shouldHideHelpButton = !sidePaneNVP || !shouldHideSidePane || isLanguageUnsupported;
46+
const shouldHideHelpButton = !canUseHelpSidePanel || !shouldHideSidePane || isLanguageUnsupported;
4647
const shouldHideSidePaneBackdrop = shouldHideSidePane || isExtraLargeScreenWidth || shouldUseNarrowLayout;
4748

4849
return {shouldHideSidePane, isSidePaneHiddenOrLargeScreen, shouldHideHelpButton, shouldHideSidePaneBackdrop, sidePaneNVP};
@@ -82,25 +83,17 @@ function useSidePane() {
8283
}, [shouldHideSidePane, shouldApplySidePaneOffset, sidePaneWidth]);
8384

8485
const openSidePane = useCallback(() => {
85-
if (!sidePaneNVP) {
86-
return;
87-
}
88-
8986
setIsSidePaneTransitionEnded(false);
9087
KeyboardUtils.dismiss();
9188

9289
triggerSidePane({
9390
isOpen: true,
9491
isOpenNarrowScreen: isExtraLargeScreenWidth ? undefined : true,
9592
});
96-
}, [isExtraLargeScreenWidth, sidePaneNVP]);
93+
}, [isExtraLargeScreenWidth]);
9794

9895
const closeSidePane = useCallback(
9996
(shouldUpdateNarrow = false) => {
100-
if (!sidePaneNVP) {
101-
return;
102-
}
103-
10497
setIsSidePaneTransitionEnded(false);
10598
const shouldOnlyUpdateNarrowLayout = !isExtraLargeScreenWidth || shouldUpdateNarrow;
10699
triggerSidePane({
@@ -111,7 +104,7 @@ function useSidePane() {
111104
// Focus the composer after closing the side pane
112105
focusComposerWithDelay(ReportActionComposeFocusManager.composerRef.current, CONST.ANIMATED_TRANSITION + CONST.COMPOSER_FOCUS_DELAY)(true);
113106
},
114-
[isExtraLargeScreenWidth, sidePaneNVP],
107+
[isExtraLargeScreenWidth],
115108
);
116109

117110
return {

src/libs/Permissions.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ function canUseTableReportView(betas: OnyxEntry<Beta[]>): boolean {
5454
return !!betas?.includes(CONST.BETAS.TABLE_REPORT_VIEW) || canUseAllBetas(betas);
5555
}
5656

57+
function canUseHelpSidePanel(betas: OnyxEntry<Beta[]>): boolean {
58+
return !!betas?.includes(CONST.BETAS.HELP_SIDE_PANEL) || canUseAllBetas(betas);
59+
}
60+
5761
function canUseTalkToAISales(betas: OnyxEntry<Beta[]>): boolean {
5862
return !!betas?.includes(CONST.BETAS.NEW_DOT_TALK_TO_AI_SALES) || canUseAllBetas(betas);
5963
}
@@ -74,6 +78,7 @@ export default {
7478
canUseInternationalBankAccount,
7579
canUseCustomRules,
7680
canUseTableReportView,
81+
canUseHelpSidePanel,
7782
canUseTalkToAISales,
7883
canUseProhibitedExpenses,
7984
};

0 commit comments

Comments
 (0)