Skip to content

Commit b36f4fd

Browse files
Merge pull request #650 from mbaldessari/logo-catalog-support
logo catalog support
2 parents 78b04d5 + 114e363 commit b36f4fd

4 files changed

Lines changed: 46 additions & 14 deletions

File tree

console/src/api.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export async function fetchCatalogImage(): Promise<string> {
5252
export async function fetchAllPatterns(): Promise<{
5353
patterns: Pattern[];
5454
catalogDescription?: string;
55+
catalogLogo?: string;
5556
}> {
5657
const catalog = await fetchCatalog();
5758
const patterns = await Promise.all(
@@ -60,7 +61,15 @@ export async function fetchAllPatterns(): Promise<{
6061
return { ...pattern, catalogKey: key };
6162
}),
6263
);
63-
return { patterns, catalogDescription: catalog.catalog_description };
64+
return {
65+
patterns,
66+
catalogDescription: catalog.catalog_description,
67+
catalogLogo: catalog.catalog_logo
68+
? /^https?:\/\//.test(catalog.catalog_logo)
69+
? catalog.catalog_logo
70+
: `${PATTERN_UI_CATALOG_BASE_URL}/${catalog.catalog_logo}`
71+
: undefined,
72+
};
6473
}
6574

6675
export interface VaultJobStatus {

console/src/components/PatternCatalogPage.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
.patterns-operator__catalog-header {
2+
display: flex;
3+
align-items: center;
4+
gap: 12px;
5+
}
6+
7+
.patterns-operator__catalog-logo {
8+
max-height: 48px;
9+
object-fit: contain;
10+
}
11+
112
.patterns-operator__card-field {
213
margin-bottom: 4px;
314
}

console/src/components/PatternCatalogPage.tsx

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ export default function PatternCatalogPage() {
166166
const [installedPatterns, setInstalledPatterns] = React.useState<Set<string>>(new Set());
167167
const [catalogImage, setCatalogImage] = React.useState<string | null>(null);
168168
const [catalogDescription, setCatalogDescription] = React.useState<string | undefined>();
169+
const [catalogLogo, setCatalogLogo] = React.useState<string | undefined>();
169170
const [selectedTiers, setSelectedTiers] = React.useState<Set<string>>(new Set(['maintained']));
170171
const [tierSelectOpen, setTierSelectOpen] = React.useState(false);
171172

@@ -175,6 +176,7 @@ export default function PatternCatalogPage() {
175176
.then(([catalogData, installed, image]) => {
176177
setPatterns(catalogData.patterns);
177178
setCatalogDescription(catalogData.catalogDescription);
179+
setCatalogLogo(catalogData.catalogLogo);
178180
setInstalledPatterns(new Set(installed));
179181
setCatalogImage(image);
180182
setLoading(false);
@@ -222,21 +224,30 @@ export default function PatternCatalogPage() {
222224
<title data-test="pattern-catalog-page-title">{t('Pattern Catalog')}</title>
223225
</Helmet>
224226
<PageSection>
225-
{catalogImage ? (
226-
<Tooltip content={`${t('Catalog source')}: ${catalogImage}`}>
227-
<Title
228-
headingLevel="h1"
229-
data-test="pattern-catalog-page-title"
230-
style={{ display: 'inline-block' }}
231-
>
227+
<div className="patterns-operator__catalog-header">
228+
{catalogLogo && (
229+
<img
230+
src={catalogLogo}
231+
alt={t('Catalog logo')}
232+
className="patterns-operator__catalog-logo"
233+
/>
234+
)}
235+
{catalogImage ? (
236+
<Tooltip content={`${t('Catalog source')}: ${catalogImage}`}>
237+
<Title
238+
headingLevel="h1"
239+
data-test="pattern-catalog-page-title"
240+
style={{ display: 'inline-block' }}
241+
>
242+
{t('Pattern Catalog')}
243+
</Title>
244+
</Tooltip>
245+
) : (
246+
<Title headingLevel="h1" data-test="pattern-catalog-page-title">
232247
{t('Pattern Catalog')}
233248
</Title>
234-
</Tooltip>
235-
) : (
236-
<Title headingLevel="h1" data-test="pattern-catalog-page-title">
237-
{t('Pattern Catalog')}
238-
</Title>
239-
)}
249+
)}
250+
</div>
240251
</PageSection>
241252
{catalogDescription && (
242253
<PageSection>

console/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export interface Catalog {
22
generated_at: string;
33
generator_version: string;
44
catalog_description?: string;
5+
catalog_logo?: string;
56
patterns: string[];
67
}
78

0 commit comments

Comments
 (0)