feat: add Labs pane to preferences (#892)

* feat: add Labs pane to preferences

* feat: use lab_features value for account switcher

* feat: labs pane with experimental features

* fix: use toggleExperimentalFeature from features service

* fix: show premium modal if not entitled for experimental feature

* fix: add isExperimental && isExperimentalEnabled to EditorMenuItem type

* fix: hide experimental editor if not enabled

* chore(deps): update features and snjs

* fix: remove comment

* fix: remove filtering from reloadExperimentalFeatures

* fix: revert Footer.tsx

* chore(deps): bump @standardnotes packages

* fix: change experimental features layout

Co-authored-by: Johnny Almonte <johnny243@users.noreply.github.com>
Co-authored-by: Mo <mo@standardnotes.com>
This commit is contained in:
Aman Harwara
2022-03-08 22:09:37 +05:30
committed by GitHub
parent 6d64889aad
commit ab6e5ac367
8 changed files with 166 additions and 41 deletions

View File

@@ -34,6 +34,8 @@ export type EditorMenuItem = {
name: string;
component?: SNComponent;
isEntitled: boolean;
isExperimental: boolean;
isExperimentalEnabled: boolean;
};
export type EditorMenuGroup = AccordionMenuGroup<EditorMenuItem>;

View File

@@ -223,6 +223,10 @@ export const ChangeEditorMenu: FunctionComponent<ChangeEditorMenuProps> = ({
selectEditor(item);
};
if (item.isExperimental && !item.isExperimentalEnabled) {
return;
}
return (
<MenuItem
type={MenuItemType.RadioButton}

View File

@@ -41,6 +41,8 @@ export const createEditorMenuGroups = (
{
name: PLAIN_EDITOR_NAME,
isEntitled: true,
isExperimental: false,
isExperimentalEnabled: false,
},
],
'rich-text': [],
@@ -67,6 +69,13 @@ export const createEditorMenuGroups = (
editorItems[getEditorGroup(editorFeature)].push({
name: editorFeature.name as string,
isEntitled: false,
isExperimental: application.features.isExperimentalFeature(
editorFeature.identifier
),
isExperimentalEnabled:
application.features.isExperimentalFeatureEnabled(
editorFeature.identifier
),
});
}
});
@@ -78,6 +87,12 @@ export const createEditorMenuGroups = (
isEntitled:
application.features.getFeatureStatus(editor.identifier) ===
FeatureStatus.Entitled,
isExperimental: application.features.isExperimentalFeature(
editor.identifier
),
isExperimentalEnabled: application.features.isExperimentalFeatureEnabled(
editor.identifier
),
};
editorItems[getEditorGroup(editor.package_info)].push(editorItem);