Skip to content

Commit 4cebfa6

Browse files
authored
feat: Remove module meta from community modules (#4059)
* remove module meta * fix if * fix if * fixes after review
1 parent d15ecfb commit 4cebfa6

File tree

5 files changed

+17
-86
lines changed

5 files changed

+17
-86
lines changed

src/components/KymaModules/CommunityModulesAddModule.tsx

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useTranslation } from 'react-i18next';
22
import { useNavigate } from 'react-router';
3-
import { useRecoilState } from 'recoil';
3+
import { SetterOrUpdater, useRecoilState, useSetRecoilState } from 'recoil';
44
import { useFeature } from 'hooks/useFeature';
55
import { columnLayoutState } from 'state/columnLayoutAtom';
66
import { ResourceForm } from 'shared/ResourceForm';
@@ -19,27 +19,24 @@ import {
1919
import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
2020
import { UnsavedMessageBox } from 'shared/components/UnsavedMessageBox/UnsavedMessageBox';
2121
import { createPortal } from 'react-dom';
22-
import { SetterOrUpdater, useSetRecoilState } from 'recoil';
2322
import { isResourceEditedState } from 'state/resourceEditedAtom';
2423
import { useUploadResources } from 'resources/Namespaces/YamlUpload/useUploadResources';
2524
import { usePost } from 'shared/hooks/BackendAPI/usePost';
2625
import { CommunityModuleContext } from 'components/KymaModules/providers/CommunityModuleProvider';
2726
import CommunityModuleCard from 'components/KymaModules/components/CommunityModuleCard';
2827

2928
import { useNotification } from 'shared/contexts/NotificationContext';
30-
import { ModuleTemplatesContext } from 'components/KymaModules/providers/ModuleTemplatesProvider';
3129

3230
import './KymaModulesAddModule.scss';
31+
3332
type VersionDisplayInfo = {
3433
moduleTemplate: {
3534
name: string;
3635
namespace: string;
3736
};
3837
version: string;
39-
channel: string;
4038
installed: boolean;
4139
textToDisplay: string;
42-
beta?: boolean;
4340
icon?: { link: string; name: string };
4441
docsURL?: string;
4542
};
@@ -95,11 +92,6 @@ function transformDataForDisplay(
9592
availableCommunityModules: Map<string, VersionInfo[]>,
9693
): ModuleDisplayInfo[] {
9794
return Array.from(availableCommunityModules, ([moduleName, versions]) => {
98-
const formatDisplayText = (v: VersionInfo): string => {
99-
const version = `${v.channel ? v.channel + ' ' : ''}(v${v.version})`;
100-
return version;
101-
};
102-
10395
return {
10496
name: moduleName,
10597
versions: versions.map(v => ({
@@ -108,10 +100,8 @@ function transformDataForDisplay(
108100
namespace: v.moduleTemplateNamespace,
109101
},
110102
version: v.version,
111-
channel: v.channel ?? '',
112103
installed: v.installed ?? false,
113-
textToDisplay: formatDisplayText(v),
114-
beta: v.beta,
104+
textToDisplay: `v${v.version}`,
115105
icon: v.icon,
116106
docsURL: v.docsURL,
117107
})),
@@ -145,32 +135,22 @@ export default function CommunityModulesAddModule(props: any) {
145135
] = useState(new Map<string, ModuleTemplateType>());
146136

147137
const {
148-
moduleTemplatesLoading,
149-
moduleReleaseMetasLoading,
150-
moduleReleaseMetas,
151-
} = useContext(ModuleTemplatesContext);
152-
const {
153-
installedCommunityModules,
154138
notInstalledCommunityModuleTemplates,
155139
installedCommunityModulesLoading: notInstalledCommunityModulesLoading,
156140
} = useContext(CommunityModuleContext);
157141

158142
const availableCommunityModules = useMemo(() => {
159-
if (!moduleReleaseMetasLoading && notInstalledCommunityModuleTemplates) {
143+
if (!notInstalledCommunityModulesLoading) {
160144
return getAvailableCommunityModules(
161145
notInstalledCommunityModuleTemplates,
162146
{} as ModuleTemplateListType,
163-
moduleReleaseMetas,
164147
);
165148
} else {
166149
return new Map();
167150
}
168-
// eslint-disable-next-line react-hooks/exhaustive-deps
169151
}, [
170152
notInstalledCommunityModuleTemplates,
171-
installedCommunityModules,
172-
moduleReleaseMetas,
173-
moduleReleaseMetasLoading,
153+
notInstalledCommunityModulesLoading,
174154
]);
175155

176156
useEffect(() => {
@@ -216,7 +196,7 @@ export default function CommunityModulesAddModule(props: any) {
216196
}
217197
};
218198
}, [cardsContainerRef, calculateColumns]);
219-
if (notInstalledCommunityModulesLoading || moduleTemplatesLoading) {
199+
if (notInstalledCommunityModulesLoading) {
220200
return (
221201
<div style={{ height: 'calc(100vh - 14rem)' }}>
222202
<Spinner />

src/components/KymaModules/components/CommunityModuleCard.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,14 @@ export default function CommunityModuleCard({
102102
<div className="settings-panel__content sap-margin-y-small">
103103
<Label>{t('modules.community.release-channel') + ':'} </Label>
104104
<Select
105-
accessibleName={`${module.name} channel select`}
105+
accessibleName={`${module.name} version select`}
106106
onChange={event => {
107107
onChange(event.detail.selectedOption.value, false);
108108
}}
109109
value={`${module.versions[0].moduleTemplate.name}|${module.versions[0].moduleTemplate.namespace}`}
110110
className="channel-select"
111111
>
112-
{module.versions?.map((version, idx) => (
112+
{module.versions?.map(version => (
113113
<Option
114114
selected={selectedModules.get(module.name)}
115115
key={`option-${version.moduleTemplate.name}|${version.moduleTemplate.namespace}`}

src/components/KymaModules/components/CommunityModuleVersionSelect.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ export type VersionDisplayInfo = {
1616
namespace: string;
1717
};
1818
version: string;
19-
channel: string;
2019
installed: boolean;
2120
textToDisplay: string;
22-
beta?: boolean;
2321
};
2422

2523
export default function CommunityModuleVersionSelect({
@@ -35,7 +33,7 @@ export default function CommunityModuleVersionSelect({
3533
<FlexBox direction="Column" style={{ gap: '0.5rem' }} key={module?.name}>
3634
<Label>{`${module.name}:`}</Label>
3735
<Select
38-
accessibleName={`${module.name} channel select`}
36+
accessibleName={`${module.name} version select`}
3937
onChange={event => {
4038
onChange(event.detail.selectedOption.value);
4139
}}
@@ -47,7 +45,6 @@ export default function CommunityModuleVersionSelect({
4745
selected={version.installed}
4846
key={`${idx}-${installedVersion.moduleTemplate.name}|${installedVersion.moduleTemplate.namespace}`}
4947
value={`${version.moduleTemplate.name}|${version.moduleTemplate.namespace}`}
50-
additionalText={version.beta ? 'Beta' : ''}
5148
>
5249
{version.textToDisplay}
5350
</Option>

src/components/KymaModules/components/CommunityModulesEdit.tsx

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import {
3232
import { ModuleTemplatesContext } from 'components/KymaModules/providers/ModuleTemplatesProvider';
3333

3434
import './CommunityModule.scss';
35-
import { capitalizeFirstLetter } from '@ui5/webcomponents-react-base';
3635

3736
const isModuleInstalled = (
3837
foundModuleTemplate: ModuleTemplateType,
@@ -125,12 +124,6 @@ function transformDataForDisplay(
125124
t: Function,
126125
): ModuleDisplayInfo[] {
127126
return Array.from(availableCommunityModules, ([moduleName, versions]) => {
128-
const formatDisplayText = (v: VersionInfo): string => {
129-
return `${v.channel ? capitalizeFirstLetter(v.channel) + ' ' : ''}(v${
130-
v.version
131-
})`;
132-
};
133-
134127
return {
135128
name: moduleName,
136129
versions: versions.map(v => ({
@@ -139,10 +132,8 @@ function transformDataForDisplay(
139132
namespace: v.moduleTemplateNamespace,
140133
},
141134
version: v.version,
142-
channel: v.channel ?? '',
143135
installed: v.installed ?? false,
144-
beta: v.beta,
145-
textToDisplay: formatDisplayText(v),
136+
textToDisplay: `v${v.version}`,
146137
})),
147138
};
148139
});
@@ -170,32 +161,28 @@ export default function CommunityModulesEdit() {
170161
setCommunityModulesTemplatesToApply,
171162
] = useState(new Map<string, ModuleTemplateType>());
172163

173-
const {
174-
moduleTemplatesLoading,
175-
communityModuleTemplates,
176-
moduleReleaseMetasLoading,
177-
moduleReleaseMetas,
178-
} = useContext(ModuleTemplatesContext);
164+
const { moduleTemplatesLoading, communityModuleTemplates } = useContext(
165+
ModuleTemplatesContext,
166+
);
179167
const {
180168
installedCommunityModuleTemplates,
181169
installedCommunityModulesLoading,
182170
} = useContext(CommunityModuleContext);
183171

184172
const availableCommunityModules = useMemo(() => {
185-
if (!moduleReleaseMetasLoading) {
173+
if (!moduleTemplatesLoading && !installedCommunityModulesLoading) {
186174
return getAvailableCommunityModules(
187175
communityModuleTemplates,
188176
installedCommunityModuleTemplates,
189-
moduleReleaseMetas,
190177
);
191178
} else {
192179
return new Map();
193180
}
194181
}, [
195182
communityModuleTemplates,
196-
moduleReleaseMetas,
183+
moduleTemplatesLoading,
197184
installedCommunityModuleTemplates,
198-
moduleReleaseMetasLoading,
185+
installedCommunityModulesLoading,
199186
]);
200187

201188
useEffect(() => {

src/components/KymaModules/components/communityModulesHelpers.ts

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {
22
getModuleName,
3-
ModuleReleaseMetaListType,
43
ModuleTemplateListType,
54
ModuleTemplateType,
65
} from 'components/KymaModules/support';
@@ -10,9 +9,7 @@ export type VersionInfo = {
109
version: string;
1110
moduleTemplateName: string;
1211
moduleTemplateNamespace: string;
13-
channel?: string;
1412
installed?: boolean;
15-
beta?: boolean;
1613
docsURL?: string;
1714
icon?: {
1815
link: string;
@@ -23,12 +20,10 @@ export type VersionInfo = {
2320
export function getAvailableCommunityModules(
2421
communityModulesTemplates: ModuleTemplateListType,
2522
installedModuleTemplates: ModuleTemplateListType,
26-
moduleReleaseMetas: ModuleReleaseMetaListType,
2723
): Map<string, VersionInfo[]> {
2824
const availableCommunityModules = new Map<string, VersionInfo[]>();
2925
fillModuleVersions(availableCommunityModules, communityModulesTemplates);
3026
markInstalledVersion(availableCommunityModules, installedModuleTemplates);
31-
fillModulesWithMetadata(availableCommunityModules, moduleReleaseMetas);
3227
return availableCommunityModules;
3328
}
3429

@@ -46,10 +41,7 @@ function fillModuleVersions(
4641
const moduleVersions = acc.get(moduleName);
4742
if (moduleVersions) {
4843
const foundVersion = moduleVersions.find(module => {
49-
return (
50-
module.channel === newVersionCandidate.channel &&
51-
module.version === newVersionCandidate.version
52-
);
44+
return module.version === newVersionCandidate.version;
5345
});
5446
if (!foundVersion) {
5547
moduleVersions.push(newVersionCandidate);
@@ -64,7 +56,6 @@ function fillModuleVersions(
6456
function createVersion(moduleTemplate: ModuleTemplateType): VersionInfo {
6557
return {
6658
version: moduleTemplate.spec.version,
67-
channel: moduleTemplate.spec.channel,
6859
moduleTemplateNamespace: moduleTemplate.metadata.namespace,
6960
moduleTemplateName: moduleTemplate.metadata.name,
7061
docsURL: moduleTemplate.spec.info?.documentation,
@@ -111,30 +102,6 @@ function markInstalledVersion(
111102
});
112103
}
113104

114-
function fillModulesWithMetadata(
115-
availableCommunityModules: Map<string, VersionInfo[]>,
116-
moduleReleaseMetas: ModuleReleaseMetaListType,
117-
) {
118-
(moduleReleaseMetas?.items || [])?.forEach(releaseMeta => {
119-
const foundVersions = availableCommunityModules.get(
120-
releaseMeta.spec.moduleName,
121-
);
122-
if (foundVersions) {
123-
foundVersions.forEach(version => {
124-
const matchedChannelMeta = releaseMeta.spec.channels.find(
125-
channelMeta => {
126-
return channelMeta.version === version.version;
127-
},
128-
);
129-
if (matchedChannelMeta) {
130-
version.channel = matchedChannelMeta.channel;
131-
version.beta = releaseMeta.spec.beta ?? false;
132-
}
133-
});
134-
}
135-
});
136-
}
137-
138105
export function getInstalledModules(
139106
moduleTemplates: ModuleTemplateListType,
140107
managers: any,

0 commit comments

Comments
 (0)