Skip to content

Commit 1b1850f

Browse files
author
Roman Snapko
committed
Add support for marking new capability in templates catalog
1 parent d79539f commit 1b1850f

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

packages/react-ui/src/app/features/templates/components/public-flow-template-filter-sidebar-wrapper.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export type FlowTemplateFilterSidebarProps = {
2020
setSelectedServices: (services: string[]) => void;
2121
selectedCategories: string[];
2222
setSelectedCategories: (categories: string[]) => void;
23+
newDomains?: string[];
2324
};
2425

2526
export const FlowTemplateFilterSidebarSkeletonLoader: React.FC<{
@@ -53,6 +54,7 @@ const PublicFlowTemplateFilterSidebarWrapper = ({
5354
setSelectedCategories,
5455
setSelectedBlocks,
5556
showDomains = true,
57+
newDomains = [],
5658
}: FlowTemplateFilterSidebarProps & { showDomains?: boolean }) => {
5759
const useCloudTemplates = flagsHooks.useShouldFetchCloudTemplates();
5860

@@ -175,6 +177,7 @@ const PublicFlowTemplateFilterSidebarWrapper = ({
175177
selectedCategories={selectedCategories}
176178
categoryLogos={categoryLogos}
177179
showDomains={showDomains}
180+
newDomains={newDomains}
178181
/>
179182
);
180183
};

packages/react-ui/src/app/features/templates/components/select-flow-template-dialog-content.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ const SelectFlowTemplateDialogContent = ({
150150
selectedCategories={selectedCategories}
151151
setSelectedCategories={setSelectedCategories}
152152
showDomains={isFullCatalog}
153+
newDomains={['Policy & Governance']}
153154
/>
154155
) : (
155156
<PrivateFlowTemplateFilterSidebarWrapper />

packages/ui-components/src/components/flow-template/flow-template-filter-sidebar.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { BlockMetadataModelSummary } from '@openops/blocks-framework';
22
import { t } from 'i18next';
33
import { ChevronRight, Layers, LucideIcon } from 'lucide-react';
44
import { cn } from '../../lib/cn';
5+
import { Badge } from '../../ui/badge';
56
import {
67
Collapsible,
78
CollapsibleContent,
@@ -21,6 +22,7 @@ type FlowTemplateFilterItemProps = {
2122
isActive: boolean;
2223
logoUrl?: string;
2324
Icon?: LucideIcon;
25+
isNew?: boolean;
2426
};
2527

2628
const FlowTemplateFilterItem = ({
@@ -30,12 +32,13 @@ const FlowTemplateFilterItem = ({
3032
onClick,
3133
logoUrl,
3234
Icon,
35+
isNew = false,
3336
}: FlowTemplateFilterItemProps) => (
3437
<div
3538
aria-selected={isActive}
3639
role="option"
3740
className={cn(
38-
'w-full px-3 py-[10px] justify-start gap-2.5 inline-flex items-center overflow-hidden cursor-pointer hover:bg-muted',
41+
'w-full px-3 py-[10px] justify-start gap-2.5 inline-flex items-center overflow-visible cursor-pointer hover:bg-muted relative',
3942
{
4043
'bg-muted': isActive,
4144
},
@@ -52,6 +55,14 @@ const FlowTemplateFilterItem = ({
5255
text={displayName}
5356
className="w-full font-normal text-slate-600 dark:text-primary text-base leading-snug truncate select-none"
5457
/>
58+
{isNew && (
59+
<Badge
60+
variant="secondary"
61+
className="-mx-2.5 text-[10px] font-medium px-0.5"
62+
>
63+
{t('New')}
64+
</Badge>
65+
)}
5566
</TooltipProvider>
5667
</div>
5768
);
@@ -94,6 +105,7 @@ type FlowTemplateFilterSidebarProps = {
94105
onCategoryFilterClick: (category: string) => void;
95106
clearFilters: () => void;
96107
categoryLogos?: Record<string, string>;
108+
newDomains?: string[];
97109
};
98110

99111
const FlowTemplateFilterSidebar = ({
@@ -111,6 +123,7 @@ const FlowTemplateFilterSidebar = ({
111123
onCategoryFilterClick,
112124
clearFilters,
113125
categoryLogos,
126+
newDomains = [],
114127
}: FlowTemplateFilterSidebarProps & { showDomains?: boolean }) => {
115128
return (
116129
<div className="rounded-2xl flex-col justify-start items-start inline-flex h-full w-full px-4 pt-[25px] pb-8 bg-background">
@@ -183,6 +196,7 @@ const FlowTemplateFilterSidebar = ({
183196
onClick={onDomainFilterClick}
184197
isActive={selectedDomains.includes(domain)}
185198
Icon={DOMAIN_ICON_SUGGESTIONS[domain] ?? Layers}
199+
isNew={newDomains.includes(domain)}
186200
/>
187201
))}
188202
</div>

0 commit comments

Comments
 (0)