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:
@@ -34,6 +34,8 @@ export type EditorMenuItem = {
|
||||
name: string;
|
||||
component?: SNComponent;
|
||||
isEntitled: boolean;
|
||||
isExperimental: boolean;
|
||||
isExperimentalEnabled: boolean;
|
||||
};
|
||||
|
||||
export type EditorMenuGroup = AccordionMenuGroup<EditorMenuItem>;
|
||||
|
||||
@@ -223,6 +223,10 @@ export const ChangeEditorMenu: FunctionComponent<ChangeEditorMenuProps> = ({
|
||||
selectEditor(item);
|
||||
};
|
||||
|
||||
if (item.isExperimental && !item.isExperimentalEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
return (
|
||||
<MenuItem
|
||||
type={MenuItemType.RadioButton}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user