diff --git a/src/plugins/content_management/public/components/page_render.tsx b/src/plugins/content_management/public/components/page_render.tsx
index 9a5211ca3a46..90d6033576bb 100644
--- a/src/plugins/content_management/public/components/page_render.tsx
+++ b/src/plugins/content_management/public/components/page_render.tsx
@@ -7,6 +7,7 @@ import React from 'react';
import { useObservable } from 'react-use';
import { SavedObjectsClientContract } from 'opensearch-dashboards/public';
+import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
import { Page } from '../services';
import { SectionRender } from './section_render';
import { EmbeddableStart } from '../../../embeddable/public';
@@ -21,16 +22,22 @@ export const PageRender = ({ page, embeddable, savedObjectsClient }: Props) => {
const sections = useObservable(page.getSections$()) || [];
return (
-
+
{sections.map((section) => (
-
+
+
+
))}
-
+
);
};
diff --git a/src/plugins/content_management/public/components/section_render.tsx b/src/plugins/content_management/public/components/section_render.tsx
index 180632331c83..d28fbad7296a 100644
--- a/src/plugins/content_management/public/components/section_render.tsx
+++ b/src/plugins/content_management/public/components/section_render.tsx
@@ -61,7 +61,7 @@ const CardSection = ({ section, embeddable, contents$ }: Props) => {
if (section.kind === 'card' && factory && input) {
return (
-
+
new HomePublicPlugin(initializerContext);
+
+export { HOME_PAGE_ID, HOME_CONTENT_AREAS } from '../common/constants';
diff --git a/src/plugins/workspace/opensearch_dashboards.json b/src/plugins/workspace/opensearch_dashboards.json
index 79dff7504bc5..99a66fb1743a 100644
--- a/src/plugins/workspace/opensearch_dashboards.json
+++ b/src/plugins/workspace/opensearch_dashboards.json
@@ -8,5 +8,5 @@
"opensearchDashboardsReact"
],
"optionalPlugins": ["savedObjectsManagement","management","dataSourceManagement","contentManagement"],
- "requiredBundles": ["opensearchDashboardsReact"]
+ "requiredBundles": ["opensearchDashboardsReact", "home"]
}
diff --git a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx
index d3578498c858..68ed1c67359f 100644
--- a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx
+++ b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.test.tsx
@@ -109,18 +109,6 @@ describe('', () => {
expect(screen.getByText('Observability')).toBeInTheDocument();
});
- it('should close the workspace dropdown list', async () => {
- render();
-
- fireEvent.click(screen.getByTestId('workspace-select-button'));
-
- expect(screen.getByText(/all workspaces/i)).toBeInTheDocument();
- fireEvent.click(screen.getByTestId('workspace-select-button'));
- await waitFor(() => {
- expect(screen.queryByText(/all workspaces/i)).not.toBeInTheDocument();
- });
- });
-
it('should navigate to the workspace', () => {
coreStartMock.workspaces.workspaceList$.next([
{ id: 'workspace-1', name: 'workspace 1', features: ['use-case-observability'] },
diff --git a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx
index bda11fb3d113..77d1cd6e602e 100644
--- a/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx
+++ b/src/plugins/workspace/public/components/workspace_menu/workspace_menu.tsx
@@ -44,7 +44,7 @@ const allWorkspacesTitle = i18n.translate('workspace.menu.title.allWorkspaces',
});
const recentWorkspacesTitle = i18n.translate('workspace.menu.title.recentWorkspaces', {
- defaultMessage: 'recent workspaces',
+ defaultMessage: 'Recent workspaces',
});
const createWorkspaceButton = i18n.translate('workspace.menu.button.createWorkspace', {
@@ -158,6 +158,7 @@ export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => {
}
onClick={() => {
+ closePopover();
window.location.assign(useCaseURL);
}}
/>
@@ -221,6 +222,7 @@ export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => {
{
+ closePopover();
navigateToWorkspaceDetail(coreStart, currentWorkspace.id);
}}
>
@@ -240,6 +242,7 @@ export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => {
{
+ closePopover();
coreStart.application.navigateToApp(WORKSPACE_LIST_APP_ID);
}}
>
@@ -251,8 +254,9 @@ export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => {
- {getWorkspaceListGroup(filteredRecentWorkspaces, 'recent')}
- {getWorkspaceListGroup(filteredWorkspaceList, 'all')}
+ {filteredRecentWorkspaces.length > 0 &&
+ getWorkspaceListGroup(filteredRecentWorkspaces, 'recent')}
+ {filteredWorkspaceList.length > 0 && getWorkspaceListGroup(filteredWorkspaceList, 'all')}
@@ -263,6 +267,7 @@ export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => {
key={WORKSPACE_LIST_APP_ID}
data-test-subj="workspace-menu-view-all-button"
onClick={() => {
+ closePopover();
coreStart.application.navigateToApp(WORKSPACE_LIST_APP_ID);
}}
>
@@ -278,6 +283,7 @@ export const WorkspaceMenu = ({ coreStart, registeredUseCases$ }: Props) => {
key={WORKSPACE_CREATE_APP_ID}
data-test-subj="workspace-menu-create-workspace-button"
onClick={() => {
+ closePopover();
coreStart.application.navigateToApp(WORKSPACE_CREATE_APP_ID);
}}
>
diff --git a/src/plugins/workspace/public/plugin.ts b/src/plugins/workspace/public/plugin.ts
index 4338ec6b7c2d..40f475d4a818 100644
--- a/src/plugins/workspace/public/plugin.ts
+++ b/src/plugins/workspace/public/plugin.ts
@@ -50,6 +50,7 @@ import { toMountPoint } from '../../opensearch_dashboards_react/public';
import { UseCaseService } from './services/use_case_service';
import { ContentManagementPluginStart } from '../../../plugins/content_management/public';
import { UseCaseFooter } from './components/home_get_start_card';
+import { HOME_CONTENT_AREAS } from '../../home/public';
type WorkspaceAppType = (
params: AppMountParameters,
@@ -395,7 +396,7 @@ export class WorkspacePlugin
useCases.forEach((useCase, index) => {
contentManagement.registerContentProvider({
id: `home_get_start_${useCase.id}`,
- getTargetArea: () => `osd_homepage/get_started`,
+ getTargetArea: () => HOME_CONTENT_AREAS.GET_STARTED,
getContent: () => ({
id: useCase.id,
kind: 'card',