feat: add `sidepanelNavigation` to Feature preview list (#33156)

pull/32732/merge
Júlia Jaeger Foresti 1 year ago committed by GitHub
parent 0f5a39e317
commit bb94c9c67a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 7
      .changeset/brown-singers-appear.md
  2. 25
      apps/meteor/client/views/account/featurePreview/AccountFeaturePreviewPage.tsx
  3. 6
      packages/i18n/src/locales/en.i18n.json
  4. 20
      packages/ui-client/src/hooks/useFeaturePreviewList.ts

@ -0,0 +1,7 @@
---
'@rocket.chat/ui-client': minor
'@rocket.chat/i18n': minor
'@rocket.chat/meteor': minor
---
added `sidepanelNavigation` to feature preview list

@ -24,6 +24,21 @@ import { useForm } from 'react-hook-form';
import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page';
const handleEnableQuery = (features: FeaturePreviewProps[]) => {
return features.map((item) => {
if (item.enableQuery) {
const expected = item.enableQuery.value;
const received = features.find((el) => el.name === item.enableQuery?.name)?.value;
if (expected !== received) {
item.disabled = true;
item.value = false;
} else {
item.disabled = false;
}
}
return item;
});
};
const AccountFeaturePreviewPage = () => {
const t = useTranslation();
const dispatchToastMessage = useToastMessageDispatch();
@ -71,7 +86,7 @@ const AccountFeaturePreviewPage = () => {
};
const grouppedFeaturesPreview = Object.entries(
featuresPreview.reduce((result, currentValue) => {
handleEnableQuery(featuresPreview).reduce((result, currentValue) => {
(result[currentValue.group] = result[currentValue.group] || []).push(currentValue);
return result;
}, {} as Record<FeaturePreviewProps['group'], FeaturePreviewProps[]>),
@ -108,7 +123,13 @@ const AccountFeaturePreviewPage = () => {
<Field>
<FieldRow>
<FieldLabel htmlFor={feature.name}>{t(feature.i18n)}</FieldLabel>
<ToggleSwitch id={feature.name} checked={feature.value} name={feature.name} onChange={handleFeatures} />
<ToggleSwitch
id={feature.name}
checked={feature.value}
name={feature.name}
onChange={handleFeatures}
disabled={feature.disabled}
/>
</FieldRow>
{feature.description && <FieldHint mbs={12}>{t(feature.description)}</FieldHint>}
</Field>

@ -6533,5 +6533,9 @@
"Sidebar_Sections_Order_Description": "Select the categories in your preferred order",
"Incoming_Calls": "Incoming calls",
"Advanced_settings": "Advanced settings",
"Security_and_permissions": "Security and permissions"
"Security_and_permissions": "Security and permissions",
"Sidepanel_navigation": "Sidepanel navigation for teams",
"Sidepanel_navigation_description": "Option to open a sidepanel with channels and/or discussions associated with the team. This allows team owners to customize communication methods to best meet their team’s needs. This feature is only available when Enhanced navigation experience is enabled.",
"Show_channels_description": "Show team channels in second sidebar",
"Show_discussions_description": "Show team discussions in second sidebar"
}

@ -6,7 +6,8 @@ export type FeaturesAvailable =
| 'navigationBar'
| 'enable-timestamp-message-parser'
| 'contextualbarResizable'
| 'newNavigation';
| 'newNavigation'
| 'sidepanelNavigation';
export type FeaturePreviewProps = {
name: FeaturesAvailable;
@ -16,6 +17,11 @@ export type FeaturePreviewProps = {
imageUrl?: string;
value: boolean;
enabled: boolean;
disabled?: boolean;
enableQuery?: {
name: FeaturesAvailable;
value: boolean;
};
};
export const defaultFeaturesPreview: FeaturePreviewProps[] = [
@ -60,6 +66,18 @@ export const defaultFeaturesPreview: FeaturePreviewProps[] = [
value: false,
enabled: true,
},
{
name: 'sidepanelNavigation',
i18n: 'Sidepanel_navigation',
description: 'Sidepanel_navigation_description',
group: 'Navigation',
value: false,
enabled: false,
enableQuery: {
name: 'newNavigation',
value: true,
},
},
];
export const enabledDefaultFeatures = defaultFeaturesPreview.filter((feature) => feature.enabled);

Loading…
Cancel
Save