🛠️ Shared with me feature flag (#681)

🛠️ Shared with me feature flag (#681)
This commit is contained in:
Montassar Ghanmy
2024-10-10 13:28:24 +01:00
committed by GitHub
parent b3b80ede84
commit 9003944bb2
11 changed files with 132 additions and 41 deletions
@@ -8,10 +8,10 @@ export enum FeatureNames {
EDIT_FILES = 'chat:edit_files',
UNLIMITED_STORAGE = 'chat:unlimited_storage', //Currently inactive
COMPANY_INVITE_MEMBER = 'company:invite_member',
COMPANY_SEARCH_USERS = 'company:search_users',
COMPANY_SHARED_DRIVE = 'company:shared_drive',
COMPANY_DISPLAY_EMAIL = 'company:display_email',
COMPANY_USER_QUOTA = 'company:user_quota',
COMPANY_MANAGE_ACCESS = 'company:managed_access',
}
export type FeatureValueType = boolean | number;
@@ -27,10 +27,10 @@ availableFeaturesWithDefaults.set(FeatureNames.EDIT_FILES, true);
availableFeaturesWithDefaults.set(FeatureNames.UNLIMITED_STORAGE, true);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_INVITE_MEMBER, true);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_INVITE_MEMBER, true);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_SEARCH_USERS, true);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_SHARED_DRIVE, true);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_DISPLAY_EMAIL, true);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_USER_QUOTA, false);
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_MANAGE_ACCESS, true);
/**
* ChannelServiceImpl that allow you to manage feature flipping in Tdrive using react feature toggles
@@ -27,6 +27,9 @@ import useRouterCompany from '@features/router/hooks/use-router-company';
import _, { set } from 'lodash';
import Languages from 'features/global/services/languages-service';
import { hasAnyPublicLinkAccess } from '@features/files/utils/access-info-helpers';
import FeatureTogglesService, {
FeatureNames,
} from '@features/global/services/feature-toggles-service';
/**
* This will build the context menu in different contexts
@@ -89,7 +92,11 @@ export const useOnBuildContextMenu = (
type: 'menu',
icon: 'users-alt',
text: Languages.t('components.item_context_menu.manage_access'),
hide: access === 'read' || getPublicLinkToken() || inTrash,
hide:
access === 'read' ||
getPublicLinkToken() ||
inTrash ||
!FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_MANAGE_ACCESS),
onClick: () => setAccessModalState({ open: true, id: item.id }),
},
{ type: 'separator', hide: inTrash },
@@ -58,7 +58,7 @@ const AccessModalContent = (props: {
}
>
<div className={loading ? 'opacity-50' : ''}>
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_SEARCH_USERS) && (
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_MANAGE_ACCESS) && (
<InternalUsersAccessManager id={id} disabled={access !== 'manage'} onCloseModal={props.onCloseModal} />
)}
</div>
@@ -111,7 +111,7 @@ export default () => {
<CloudIcon className="w-5 h-5 mr-4" /> {Languages.t('components.side_menu.home')}
</Button>
)}
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_SEARCH_USERS) && (
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_MANAGE_ACCESS) && (
<Button
onClick={() => {
history.push(