Skip to content

Commit 39ca988

Browse files
committed
feat: some improvements
Signed-off-by: TheFaheem <faheemmushtaq89@gmail.com>
1 parent 2129fd8 commit 39ca988

5 files changed

Lines changed: 29 additions & 115 deletions

File tree

src/custom/CatalogDetail/RelatedDesigns.tsx

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,47 @@ import { UserProfile } from './types';
1515
export interface PatternsPerUser {
1616
patterns: Pattern[];
1717
}
18-
18+
export interface DetailsByType {
19+
patterns: Pattern[];
20+
}
1921
interface RelatedDesignsProps {
2022
details: Pattern;
2123
type: string;
2224
patternsPerUser: PatternsPerUser;
25+
detailsByType?: DetailsByType;
2326
onSuggestedPatternClick: (pattern: Pattern) => void;
2427
userProfile?: UserProfile;
2528
technologySVGPath: string;
2629
technologySVGSubpath: string;
2730
orgName: string;
2831
fetchingOrgError: boolean;
32+
filterByType?: boolean;
2933
}
3034

3135
const RelatedDesigns: React.FC<RelatedDesignsProps> = ({
3236
details,
3337
type,
3438
patternsPerUser,
39+
detailsByType,
3540
onSuggestedPatternClick,
3641
userProfile,
3742
technologySVGPath,
3843
technologySVGSubpath,
3944
orgName,
40-
fetchingOrgError
45+
fetchingOrgError,
46+
filterByType
4147
}) => {
4248
const carouselRef = useRef<HTMLDivElement>(null);
43-
const filteredPatternsPerUser = patternsPerUser?.patterns?.filter(
44-
(pattern) => pattern.id !== details.id
45-
);
49+
const filteredPatterns = filterByType
50+
? detailsByType?.patterns?.filter((pattern) => pattern.id !== details.id) || []
51+
: patternsPerUser?.patterns?.filter((pattern) => pattern.id !== details.id) || [];
4652

47-
if (!filteredPatternsPerUser?.length) return null;
48-
const organizationName = fetchingOrgError || !orgName ? 'Unknown Organization' : orgName;
53+
if (!filteredPatterns.length) return null;
54+
const organizationName = filterByType
55+
? 'Similar Designs by Type'
56+
: fetchingOrgError || !orgName
57+
? 'Unknown Organization'
58+
: orgName;
4959

5060
const scroll = (direction: 'left' | 'right') => {
5161
if (carouselRef.current) {
@@ -60,15 +70,17 @@ const RelatedDesigns: React.FC<RelatedDesignsProps> = ({
6070
<AdditionalContainer>
6171
<ContentHeading>
6272
<h2 style={{ margin: '0', textTransform: 'uppercase' }}>
63-
{getHeadingText({ type, userProfile, organizationName, fetchingOrgError })}
73+
{filterByType
74+
? organizationName
75+
: getHeadingText({ type, userProfile, organizationName, fetchingOrgError })}
6476
</h2>
6577
</ContentHeading>
6678
<CarouselWrapper>
6779
<CarouselButton onClick={() => scroll('left')}>
6880
<ChevronLeft />
6981
</CarouselButton>
7082
<CarouselContainer ref={carouselRef}>
71-
{filteredPatternsPerUser.map((pattern, index) => (
83+
{filteredPatterns.map((pattern, index) => (
7284
<div key={`design-${index}`} className="carousel-item">
7385
<CustomCatalogCard
7486
pattern={pattern}

src/custom/CatalogDetail/RightPanel.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import { Pattern } from '../CustomCatalog/CustomCard';
33
import { VIEW_VISIBILITY } from '../VisibilityChipMenu/VisibilityChipMenu';
44
import CaveatsSection from './CaveatsSection';
55
import OverviewSection from './OverviewSection';
6-
import RelatedDesigns, { PatternsPerUser } from './RelatedDesigns';
7-
import SimilarDesign, { DetailsByType } from './SimilarDesign';
6+
import RelatedDesigns, { DetailsByType, PatternsPerUser } from './RelatedDesigns';
87
import { Class } from './types';
98

109
interface RightPanelProps {
@@ -89,6 +88,7 @@ const RightPanel: React.FC<RightPanelProps> = ({
8988
{showCaveats && <CaveatsSection details={details} />}
9089
<RelatedDesigns
9190
details={details}
91+
detailsByType={detailsByType}
9292
orgName={orgName}
9393
fetchingOrgError={fetchingOrgError}
9494
type={type}
@@ -97,8 +97,9 @@ const RightPanel: React.FC<RightPanelProps> = ({
9797
userProfile={userProfile}
9898
technologySVGPath={technologySVGPath}
9999
technologySVGSubpath={technologySVGSubpath}
100+
filterByType={false}
100101
/>
101-
<SimilarDesign
102+
<RelatedDesigns
102103
details={details}
103104
detailsByType={detailsByType}
104105
orgName={orgName}
@@ -109,6 +110,7 @@ const RightPanel: React.FC<RightPanelProps> = ({
109110
userProfile={userProfile}
110111
technologySVGPath={technologySVGPath}
111112
technologySVGSubpath={technologySVGSubpath}
113+
filterByType={true}
112114
/>
113115
</div>
114116
);

src/custom/CatalogDetail/SimilarDesign.tsx

Lines changed: 0 additions & 100 deletions
This file was deleted.

src/custom/CatalogDetail/style.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ export const CarouselButton = styled('button')(({ theme }) => ({
101101
color: '#fff'
102102
},
103103
'&:first-of-type': {
104-
left: '-2rem'
104+
left: '-1.2rem'
105105
},
106106
'&:last-of-type': {
107-
right: '-2rem'
107+
right: '-1.2rem'
108108
}
109109
}));
110110
export const CarouselWrapper = styled('div')({

src/custom/VisibilityChipMenu/VisibilityChipMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ const VisibilityChipMenu: React.FC<VisibilityChipMenuProps> = ({
106106
onClick={handleOpen}
107107
data-testid={`design-visibility-${value.toLowerCase()}`}
108108
>
109-
<StyledDiv theme={theme} enabled={enabled} type={value}>
109+
<StyledDiv theme={theme} enabled={enabled}>
110110
<span style={{ fontSize: '0.7rem' }}>{value}</span>
111111
{enabled && <ArrowDropDownIcon style={{ ...iconXSmall }} />}
112112
</StyledDiv>

0 commit comments

Comments
 (0)