Skip to content

Commit 0ace55f

Browse files
committed
MTV-3719: Enhance MTV learning experience
Resolves: MTV-3719 Signed-off-by: Sharon Gratch <[email protected]>
1 parent 1e29b6e commit 0ace55f

File tree

93 files changed

+2097
-1343
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+2097
-1343
lines changed

knip.config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ export default {
44
entry: [
55
'src/overview/OverviewPage.tsx',
66
'src/overview/hooks/OverviewContext.ts',
7-
'src/overview/hooks/useOverviewContext.ts',
8-
'src/onlineHelp/tipsAndTricksDrawer/hooks/learningExperienceContext.ts',
9-
'src/onlineHelp/tipsAndTricksDrawer/hooks/useLearningExperienceContext.ts',
7+
8+
'src/onlineHelp/learningExperienceDrawer/context/ForkliftContext.ts',
9+
'src/onlineHelp/learningExperienceDrawer/context/useForkliftContext.ts',
1010

1111
'src/providers/create/ProvidersCreatePage.tsx',
1212
'src/providers/list/ProvidersListPage.tsx',

locales/en/plugin__forklift-console-plugin.json

Lines changed: 24 additions & 13 deletions
Large diffs are not rendered by default.

plugin-extensions.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { NavSection } from '@openshift-console/dynamic-plugin-sdk';
22
import type { EncodedExtension } from '@openshift-console/dynamic-plugin-sdk-webpack';
33

44
import { extensions as networkMapExtensions } from './src/networkMaps/dynamic-plugin';
5+
import { extensions as onlineHelpExtensions } from './src/onlineHelp/dynamic-plugin';
56
import { extensions as overviewExtensions } from './src/overview/dynamic-plugin';
67
import { extensions as planExtensions } from './src/plans/dynamic-plugin';
78
import { extensions as providerExtensions } from './src/providers/dynamic-plugin';
@@ -36,7 +37,7 @@ const extensions: EncodedExtension[] = [
3637
},
3738
type: 'console.navigation/section',
3839
} as EncodedExtension<NavSection>,
39-
40+
...onlineHelpExtensions,
4041
...overviewExtensions,
4142
...providerExtensions,
4243
...planExtensions,

plugin-metadata.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { ConsolePluginBuildMetadata } from '@openshift-console/dynamic-plugin-sdk-webpack';
22

33
import { exposedModules as networkMapModules } from './src/networkMaps/dynamic-plugin';
4+
import { exposedModules as onlineHelpModules } from './src/onlineHelp/dynamic-plugin';
45
import { exposedModules as overviewModules } from './src/overview/dynamic-plugin';
56
import { exposedModules as planModules } from './src/plans/dynamic-plugin';
67
import { exposedModules as providerModules } from './src/providers/dynamic-plugin';
@@ -15,6 +16,7 @@ const pluginMetadata: ConsolePluginBuildMetadata = {
1516
'Forklift is a suite of migration tools that facilitate the migration of VM workloads to KubeVirt.',
1617
displayName: 'OpenShift Console Plugin For Forklift',
1718
exposedModules: {
19+
...onlineHelpModules,
1820
...overviewModules,
1921
...providerModules,
2022
...planModules,

src/components/common/ExternalLink/ExternalLink.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { FC, ReactNode } from 'react';
22

3-
import { Button, ButtonVariant } from '@patternfly/react-core';
3+
import { Button, type ButtonProps, ButtonVariant } from '@patternfly/react-core';
44
import { ExternalLinkAltIcon } from '@patternfly/react-icons';
55

66
type ExternalLinkProps = {
@@ -10,20 +10,22 @@ type ExternalLinkProps = {
1010
isInline?: boolean;
1111
hideIcon?: boolean;
1212
onClick?: () => void;
13+
iconPosition?: ButtonProps['iconPosition'];
1314
};
1415

1516
export const ExternalLink: FC<ExternalLinkProps> = ({
1617
children,
1718
hideIcon = false,
1819
href,
20+
iconPosition = 'end',
1921
isInline = false,
2022
onClick,
2123
text = null,
2224
}) => (
2325
<Button
2426
variant={ButtonVariant.link}
2527
icon={hideIcon ? undefined : <ExternalLinkAltIcon />}
26-
iconPosition="right"
28+
iconPosition={iconPosition}
2729
component="a"
2830
href={href}
2931
target="_blank"

src/networkMaps/actions/NetworkMapActionsDropdownItems.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useNavigate } from 'react-router-dom-v5-compat';
12
import {
23
DeleteModal,
34
type DeleteModalProps,
@@ -18,6 +19,7 @@ type NetworkMapActionsDropdownItemsProps = {
1819
export const NetworkMapActionsDropdownItems = ({ data }: NetworkMapActionsDropdownItemsProps) => {
1920
const { t } = useForkliftTranslation();
2021
const launcher = useModal();
22+
const navigate = useNavigate();
2123

2224
const { obj: networkMap } = data;
2325

@@ -32,7 +34,13 @@ export const NetworkMapActionsDropdownItems = ({ data }: NetworkMapActionsDropdo
3234
};
3335

3436
return [
35-
<DropdownItem value={0} key="edit" to={networkMapURL}>
37+
<DropdownItem
38+
value={0}
39+
key="edit"
40+
onClick={() => {
41+
navigate(networkMapURL);
42+
}}
43+
>
3644
{t('Edit network map')}
3745
</DropdownItem>,
3846

src/networkMaps/create/NetworkMapCreatePage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { FC } from 'react';
2-
import TipsAndTricksDrawer from 'src/onlineHelp/tipsAndTricksDrawer/TipsAndTricksDrawer';
2+
import LearningExperienceDrawer from 'src/onlineHelp/learningExperienceDrawer/LearningExperienceDrawer';
33

44
import { PageSection, PageSectionTypes, Title } from '@patternfly/react-core';
55
import { useForkliftTranslation } from '@utils/i18n';
@@ -10,7 +10,7 @@ const NetworkMapCreatePage: FC = () => {
1010
const { t } = useForkliftTranslation();
1111

1212
return (
13-
<TipsAndTricksDrawer>
13+
<LearningExperienceDrawer>
1414
<PageSection hasBodyWrapper={false}>
1515
<Title headingLevel="h2">{t('Create network map')}</Title>
1616
</PageSection>
@@ -23,7 +23,7 @@ const NetworkMapCreatePage: FC = () => {
2323
>
2424
<CreateNetworkMapForm />
2525
</PageSection>
26-
</TipsAndTricksDrawer>
26+
</LearningExperienceDrawer>
2727
);
2828
};
2929

src/networkMaps/details/NetworkMapDetailsPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { type FC, memo } from 'react';
2-
import TipsAndTricksDrawer from 'src/onlineHelp/tipsAndTricksDrawer/TipsAndTricksDrawer';
2+
import LearningExperienceDrawer from 'src/onlineHelp/learningExperienceDrawer/LearningExperienceDrawer';
33
import { useForkliftTranslation } from 'src/utils/i18n';
44

55
import { HorizontalNav, type K8sModel } from '@openshift-console/dynamic-plugin-sdk';
@@ -35,10 +35,10 @@ const NetworkMapDetailsPage: FC<NetworkMapDetailsPageProps> = memo(({ name, name
3535
];
3636

3737
return (
38-
<TipsAndTricksDrawer>
38+
<LearningExperienceDrawer>
3939
<NetworkMapPageHeadings name={name} namespace={namespace} />
4040
<HorizontalNav pages={pages} />
41-
</TipsAndTricksDrawer>
41+
</LearningExperienceDrawer>
4242
);
4343
});
4444

src/networkMaps/list/NetworkMapsListPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { loadUserSettings } from 'src/components/common/Page/userSettings';
44
import StandardPage from 'src/components/page/StandardPage';
55
import useGetDeleteAndEditAccessReview from 'src/modules/Providers/hooks/useGetDeleteAndEditAccessReview';
66
import NetworkMapsEmptyState from 'src/networkMaps/components/NetworkMapsEmptyState';
7-
import TipsAndTricksDrawer from 'src/onlineHelp/tipsAndTricksDrawer/TipsAndTricksDrawer';
7+
import LearningExperienceDrawer from 'src/onlineHelp/learningExperienceDrawer/LearningExperienceDrawer';
88

99
import {
1010
NetworkMapModel,
@@ -128,7 +128,7 @@ const NetworkMapsListPage: FC<{
128128
}));
129129

130130
return (
131-
<TipsAndTricksDrawer>
131+
<LearningExperienceDrawer>
132132
<StandardPage<NetworkMapData>
133133
data-testid="network-maps-list"
134134
{...(permissions.canCreate && {
@@ -145,7 +145,7 @@ const NetworkMapsListPage: FC<{
145145
userSettings={userSettings}
146146
customNoResultsFound={<NetworkMapsEmptyState namespace={namespace} />}
147147
/>
148-
</TipsAndTricksDrawer>
148+
</LearningExperienceDrawer>
149149
);
150150
};
151151

src/onlineHelp/dynamic-plugin.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import type { ContextProvider } from '@openshift-console/dynamic-plugin-sdk';
2+
import type {
3+
ConsolePluginBuildMetadata,
4+
EncodedExtension,
5+
} from '@openshift-console/dynamic-plugin-sdk-webpack';
6+
7+
export const exposedModules: ConsolePluginBuildMetadata['exposedModules'] = {
8+
ForkliftContext: './onlineHelp/learningExperienceDrawer/context/ForkliftContext',
9+
useForkliftContext: './onlineHelp/learningExperienceDrawer/context/useForkliftContext',
10+
};
11+
export const extensions: EncodedExtension[] = [
12+
{
13+
properties: {
14+
provider: { $codeRef: 'ForkliftContext.CreateForkliftContextProvider' },
15+
useValueHook: {
16+
$codeRef: 'useForkliftContext.useForkliftContext',
17+
},
18+
},
19+
type: 'console.context-provider',
20+
} as EncodedExtension<ContextProvider>,
21+
];

0 commit comments

Comments
 (0)