Skip to content

Commit a53e01e

Browse files
committed
refactor: reuse OriginsCard as generic FiltersCard
1 parent a34f0f4 commit a53e01e

File tree

4 files changed

+30
-24
lines changed

4 files changed

+30
-24
lines changed

dashboard/src/components/Cards/OriginsCard.tsx renamed to dashboard/src/components/Cards/FilterCard.tsx

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,38 @@ import type {
1313
TFilter,
1414
TFilterObjectsKeys,
1515
} from '@/types/general';
16+
import type { MessagesKey } from '@/locales/messages';
1617

1718
interface IOriginsCard {
18-
origins: Record<string, RequiredStatusCount>;
19+
data: Record<string, RequiredStatusCount>;
1920
diffFilter: TFilter;
2021
filterSection: TFilterObjectsKeys;
21-
hideSingleOrigin?: boolean;
22+
hideSingleValue?: boolean;
23+
cardTitle: MessagesKey;
2224
}
2325

24-
const OriginsCard = ({
25-
origins,
26+
const FilterCard = ({
27+
data,
2628
diffFilter,
2729
filterSection,
28-
hideSingleOrigin = true,
30+
hideSingleValue = true,
31+
cardTitle,
2932
}: IOriginsCard): JSX.Element => {
3033
const content: JSX.Element[] = useMemo(() => {
31-
return Object.keys(origins).map(originItem => {
32-
const { DONE, FAIL, ERROR, MISS, PASS, SKIP, NULL } = origins[originItem];
34+
return Object.keys(data).map(item => {
35+
const { DONE, FAIL, ERROR, MISS, PASS, SKIP, NULL } = data[item];
3336

3437
return (
3538
<FilterLink
36-
key={originItem}
37-
filterValue={originItem}
39+
key={item}
40+
filterValue={item}
3841
filterSection={filterSection}
3942
diffFilter={diffFilter}
4043
>
4144
<ListingItem
4245
hasBottomBorder
43-
key={originItem}
44-
text={originItem}
46+
key={item}
47+
text={item}
4548
leftIcon={
4649
<GroupedTestStatus
4750
done={DONE}
@@ -57,17 +60,17 @@ const OriginsCard = ({
5760
</FilterLink>
5861
);
5962
});
60-
}, [origins, filterSection, diffFilter]);
63+
}, [data, filterSection, diffFilter]);
6164

62-
if (hideSingleOrigin && Object.keys(origins).length === 1) {
65+
if (hideSingleValue && Object.keys(data).length === 1) {
6366
return <></>;
6467
}
6568

6669
return (
67-
<BaseCard title={<FormattedMessage id="filter.origins" />}>
70+
<BaseCard title={<FormattedMessage id={cardTitle} />}>
6871
<DumbListingContent>{content}</DumbListingContent>
6972
</BaseCard>
7073
);
7174
};
7275

73-
export const MemoizedOriginsCard = memo(OriginsCard);
76+
export const MemoizedFilterCard = memo(FilterCard);

dashboard/src/pages/TreeDetails/Tabs/Boots/BootsTab.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import type { TreeDetailsLazyLoaded } from '@/hooks/useTreeDetailsLazyLoadQuery'
3434
import QuerySwitcher from '@/components/QuerySwitcher/QuerySwitcher';
3535
import { generateDiffFilter } from '@/components/Tabs/tabsUtils';
3636
import { MemoizedSectionError } from '@/components/DetailsPages/SectionError';
37-
import { MemoizedOriginsCard } from '@/components/Cards/OriginsCard';
37+
import { MemoizedFilterCard } from '@/components/Cards/FilterCard';
3838
import { sanitizeTreeinfo } from '@/utils/treeDetails';
3939
import { MemoizedKcidevFooter } from '@/components/Footer/KcidevFooter';
4040
import { getStringParam } from '@/utils/utils';
@@ -277,10 +277,11 @@ const BootsTab = ({
277277
environmentCompatible={hardwareData}
278278
diffFilter={diffFilter}
279279
/>,
280-
<MemoizedOriginsCard
280+
<MemoizedFilterCard
281+
cardTitle="filter.origins"
281282
key="origins"
282283
diffFilter={diffFilter}
283-
origins={summaryBootsData?.origins ?? {}}
284+
data={summaryBootsData?.origins ?? {}}
284285
filterSection="bootOrigin"
285286
/>,
286287
],

dashboard/src/pages/TreeDetails/Tabs/Build/BuildTab.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import { generateDiffFilter } from '@/components/Tabs/tabsUtils';
4545

4646
import { MemoizedSectionError } from '@/components/DetailsPages/SectionError';
4747

48-
import { MemoizedOriginsCard } from '@/components/Cards/OriginsCard';
48+
import { MemoizedFilterCard } from '@/components/Cards/FilterCard';
4949
import { sanitizeTreeinfo } from '@/utils/treeDetails';
5050
import { MemoizedKcidevFooter } from '@/components/Footer/KcidevFooter';
5151

@@ -209,10 +209,11 @@ const BuildTab = ({
209209
toggleFilterBySection={toggleFilterBySection}
210210
diffFilter={diffFilter}
211211
/>,
212-
<MemoizedOriginsCard
212+
<MemoizedFilterCard
213+
cardTitle="filter.origins"
213214
key="origins"
214215
diffFilter={diffFilter}
215-
origins={treeDetailsData.origins}
216+
data={treeDetailsData.origins}
216217
filterSection="buildOrigin"
217218
/>,
218219
<MemoizedConfigsCard

dashboard/src/pages/TreeDetails/Tabs/Tests/TestsTab.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import type { TreeDetailsLazyLoaded } from '@/hooks/useTreeDetailsLazyLoadQuery'
3434
import QuerySwitcher from '@/components/QuerySwitcher/QuerySwitcher';
3535
import { generateDiffFilter } from '@/components/Tabs/tabsUtils';
3636
import { MemoizedSectionError } from '@/components/DetailsPages/SectionError';
37-
import { MemoizedOriginsCard } from '@/components/Cards/OriginsCard';
37+
import { MemoizedFilterCard } from '@/components/Cards/FilterCard';
3838
import { sanitizeTreeinfo } from '@/utils/treeDetails';
3939
import { MemoizedKcidevFooter } from '@/components/Footer/KcidevFooter';
4040
import { getStringParam } from '@/utils/utils';
@@ -278,10 +278,11 @@ const TestsTab = ({
278278
environmentCompatible={hardwareData}
279279
diffFilter={diffFilter}
280280
/>,
281-
<MemoizedOriginsCard
281+
<MemoizedFilterCard
282+
cardTitle="filter.origins"
282283
key="origins"
283284
diffFilter={diffFilter}
284-
origins={summaryTestsData?.origins ?? {}}
285+
data={summaryTestsData?.origins ?? {}}
285286
filterSection="testOrigin"
286287
/>,
287288
],

0 commit comments

Comments
 (0)