Skip to content

Commit daaca9e

Browse files
authored
Merge pull request #518 from AppQuality/UN-699-fix-table-responsive
UN-699-fix-table-responsive
2 parents d93ad0f + 172c9a3 commit daaca9e

File tree

18 files changed

+413
-277
lines changed

18 files changed

+413
-277
lines changed

src/common/components/BugCard/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const BugCardTitle = ({
9595
}) => {
9696
if (url) {
9797
return (
98-
<Anchor className="anchor-bug-card-title" href={url} target="_blank">
98+
<Anchor className="anchor-bug-card-title" href={url}>
9999
<MD isBold>{children}</MD>
100100
</Anchor>
101101
);

src/hooks/getCampaignStatus.ts

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

src/locales/en/translation.json

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@
3232
"__BUGS_FILTER_VIEW_ALL_LABEL": "All filters",
3333
"__BUGS_FILTER_VIEW_RESET_LABEL": "Reset filters",
3434
"__BUGS_GROUP_BY_OPEN_MENU": "Group by",
35-
"__BUGS_GROUP_BY_SEVERITY": "By Severity",
36-
"__BUGS_GROUP_BY_SEVERITY_ITEM": "Severity",
3735
"__BUGS_GROUP_BY_UNGROUPED": "Single list",
3836
"__BUGS_GROUP_BY_USE_CASE": "By Use Case",
3937
"__BUGS_GROUP_BY_USE_CASE_ITEM": "Use Case",
4038
"__BUGS_ORDER_BY": "Order by",
4139
"__BUGS_ORDER_HIGHEST_TO_LOWEST": "By highest to lowest",
4240
"__BUGS_ORDER_LOWEST_TO_HIGHEST": "By lowest to highest",
4341
"__BUGS_OS_FILTER_ITEM_NO_ITEMS": "OS",
42+
"__BUGS_PAGE_BUG_CARD_DUPLICATES_LABEL": "Duplicates",
4443
"__BUGS_PAGE_BUG_DETAIL_ADDITIONAL_NOTES_LABEL": "Additional notes",
4544
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_DOWNLOAD_BUTTON": "Download this media",
4645
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_EXTRA_TAB_ITEM_LABEL": "File extra",
@@ -84,7 +83,6 @@
8483
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_one": "+ other {{count}}",
8584
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_other": "+ other {{count}}",
8685
"__BUGS_PAGE_CLOSE_DETAILS_TOOLTIP": "Close",
87-
"__BUGS_PAGE_DEFAULT_SEVERITY_SORT_LABEL": "Bugs sorted by highest severity",
8886
"__BUGS_PAGE_FILTER_DRAWER_BODY_ACTIONS_LABEL": "TAILORED FOR YOU",
8987
"__BUGS_PAGE_FILTER_DRAWER_BODY_BUG_LABEL": "OTHER DETAILS",
9088
"__BUGS_PAGE_FILTER_DRAWER_BODY_COMMON_LABEL": "MOST POPULAR",
@@ -99,6 +97,11 @@
9997
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_one": "+ <2>1</2> more",
10098
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_other": "+ <2>{{count}}</2> more",
10199
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_TITLE": "OS",
100+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_LESS_LABEL": "Show less",
101+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_one": "+ <2>1</2> more",
102+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_other": "+ <2>{{count}}</2> more",
103+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_ALL_LABEL": "All",
104+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_TITLE": "Priority",
102105
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_READ_TITLE": "Read/unread",
103106
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_ALL_LABEL": "All",
104107
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_SHOW_LESS_LABEL": "Show less",
@@ -110,11 +113,6 @@
110113
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITIES_SHOW_MORE_LABEL_other": "+ <2>{{count}}</2> more",
111114
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITY_ALL_LABEL": "All",
112115
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITY_TITLE": "Severity",
113-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_ALL_LABEL": "All",
114-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_LESS_LABEL": "Show less",
115-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_one": "+ <2>1</2> more",
116-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_other": "+ <2>{{count}}</2> more",
117-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_TITLE": "Priority",
118116
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_LESS_LABEL": "Show less",
119117
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_one": "+ <2>1</2> more",
120118
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_other": "+ <2>{{count}}</2> more",
@@ -133,14 +131,11 @@
133131
"__BUGS_PAGE_FILTER_DRAWER_CONFIRM_BUTTON": "View results",
134132
"__BUGS_PAGE_FILTER_DRAWER_HEADER_TITLE": "All filters",
135133
"__BUGS_PAGE_FILTER_DRAWER_RESET_BUTTON": "Reset filters",
136-
"__BUGS_PAGE_GROUPED_BY_SEVERITY_PERCENTAGE_OF_TOTAL": "<0><0>{{percentage}}%</0> of total bugs</0>",
137134
"__BUGS_PAGE_HEADER_UNIQUE_BUGS_ON_TOTAL": "<0><0>{{numerator}} </0><1>unique bugs</1><2>/{{denominator}} tot.</2><3> of which</3></0>",
138135
"__BUGS_PAGE_LIGHTBOX_TITLE": "BUG ID {{bugId}}",
139136
"__BUGS_PAGE_LIGHTBOX_TITLE_ATTACHMENTS_COUNT": "| Images and video attached ({{attachments}})",
140137
"__BUGS_PAGE_NO_USECASE": "Not a specific use case",
141-
"__BUGS_PAGE_OTHER_SEVERITIES": "Other severities",
142138
"__BUGS_PAGE_OTHER_USE_CASES": "Other use cases",
143-
"__BUGS_PAGE_SEVERITY": "Severity",
144139
"__BUGS_PAGE_SHARE_BUG_MODAL_CTA_ERROR_TEXT": "Something went wrong, please retry.",
145140
"__BUGS_PAGE_SHARE_BUG_MODAL_CTA_SUCCESS_TEXT": "Link copied",
146141
"__BUGS_PAGE_SHARE_BUG_MODAL_CTA_TEXT": "Copy link",
@@ -163,6 +158,7 @@
163158
"__BUGS_PAGE_USECASE_COMPLETION_4_TOOLTIP": "We are ready with this Use Case: view all the bugs",
164159
"__BUGS_PAGE_VIEW_BUG_TOOLTIP": "Open bug",
165160
"__BUGS_PAGE_WARNING_POSSIBLE_EMPTY_CASES": "As of now we couldn't find any more bugs in other use cases",
161+
"__BUGS_PRIORITY_FILTER_ITEM_NO_ITEMS": "All priorities",
166162
"__BUGS_READ_FILTER_ITEM_ALL": "All bugs",
167163
"__BUGS_READ_FILTER_ITEM_DRAWER_ALL": "All",
168164
"__BUGS_READ_FILTER_ITEM_PLACEHOLDER": "Read/unread",
@@ -174,7 +170,6 @@
174170
"__BUGS_TABLE_DUPLICATE_HEADER_COLUMN": "Duplicates",
175171
"__BUGS_TABLE_PRIORITY_HEADER_COLUMN": "Priority",
176172
"__BUGS_TABLE_SEVERITY_HEADER_COLUMN": "Severity",
177-
"__BUGS_PRIORITY_FILTER_ITEM_NO_ITEMS": "All priorities",
178173
"__BUGS_TABLE_TITLE_HEADER_COLUMN": "Bug",
179174
"__BUGS_TAGS_FILTER_ITEM_NO_ITEMS": "Tag",
180175
"__BUGS_TAGS_FILTER_ITEM_NO_TAGS": "No tags",
@@ -649,6 +644,8 @@
649644
"Devices ({{count}})_other": "Devices ({{count}})",
650645
"OS ({{count}})_one": "OS ({{count}})",
651646
"OS ({{count}})_other": "OS ({{count}})",
647+
"Priority ({{count}})_one": "",
648+
"Priority ({{count}})_other": "",
652649
"Replicability ({{count}})_one": "Replicability ({{count}})",
653650
"Replicability ({{count}})_other": "Replicability ({{count}})",
654651
"Severity ({{count}})_one": "Severity ({{count}})",

src/locales/it/translation.json

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@
3232
"__BUGS_FILTER_VIEW_ALL_LABEL": "Tutti i filtri",
3333
"__BUGS_FILTER_VIEW_RESET_LABEL": "Cancella filtri",
3434
"__BUGS_GROUP_BY_OPEN_MENU": "Organizza per",
35-
"__BUGS_GROUP_BY_SEVERITY": "Per gravità",
36-
"__BUGS_GROUP_BY_SEVERITY_ITEM": "Gravità",
3735
"__BUGS_GROUP_BY_UNGROUPED": "Lista unica",
3836
"__BUGS_GROUP_BY_USE_CASE": "Per Use Case",
3937
"__BUGS_GROUP_BY_USE_CASE_ITEM": "Use Case",
4038
"__BUGS_ORDER_BY": "Ordina per",
4139
"__BUGS_ORDER_HIGHEST_TO_LOWEST": "Dalla più alta alla più bassa",
4240
"__BUGS_ORDER_LOWEST_TO_HIGHEST": "Dalla più bassa alla più alta",
4341
"__BUGS_OS_FILTER_ITEM_NO_ITEMS": "OS",
42+
"__BUGS_PAGE_BUG_CARD_DUPLICATES_LABEL": "Duplicati",
4443
"__BUGS_PAGE_BUG_DETAIL_ADDITIONAL_NOTES_LABEL": "Altri commenti",
4544
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_DOWNLOAD_BUTTON": "Scarica questo media",
4645
"__BUGS_PAGE_BUG_DETAIL_ATTACHMENTS_EXTRA_TAB_ITEM_LABEL": "File extra",
@@ -88,7 +87,6 @@
8887
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_many": "",
8988
"__BUGS_PAGE_BUG_DETAIL_TAGS_SHOW_MORE_other": "+ altri {{count}}",
9089
"__BUGS_PAGE_CLOSE_DETAILS_TOOLTIP": "Chiudi",
91-
"__BUGS_PAGE_DEFAULT_SEVERITY_SORT_LABEL": "Bug ordinati per gravità",
9290
"__BUGS_PAGE_FILTER_DRAWER_BODY_ACTIONS_LABEL": "AZIONI FATTE DA TE",
9391
"__BUGS_PAGE_FILTER_DRAWER_BODY_BUG_LABEL": "ALTRI DETTAGLI DEL BUG",
9492
"__BUGS_PAGE_FILTER_DRAWER_BODY_COMMON_LABEL": "PIÙ COMUNI",
@@ -105,6 +103,12 @@
105103
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more OS",
106104
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_SHOW_MORE_LABEL_other": "+ altri <2>{{count}}</2>",
107105
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_OS_TITLE": "OS",
106+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_LESS_LABEL": "Mostra meno",
107+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
108+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more severities",
109+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
110+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_ALL_LABEL": "Tutte",
111+
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_TITLE": "Priorità",
108112
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_READ_TITLE": "Letti/non letti",
109113
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_ALL_LABEL": "Tutte",
110114
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_REPLICABILITY_SHOW_LESS_LABEL": "Mostra meno",
@@ -118,12 +122,6 @@
118122
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITIES_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
119123
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITY_ALL_LABEL": "Tutte",
120124
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_SEVERITY_TITLE": "Gravità",
121-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_LESS_LABEL": "Mostra meno",
122-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_ALL_LABEL": "Tutte",
123-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_one": "+ <2>1</2> altra",
124-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more severities",
125-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITIES_SHOW_MORE_LABEL_other": "+ altre <2>{{count}}</2>",
126-
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_PRIORITY_TITLE": "Priorità",
127125
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_LESS_LABEL": "Mostra meno",
128126
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_one": "+ <2>1</2> altro",
129127
"__BUGS_PAGE_FILTER_DRAWER_BODY_FILTER_TAG_SHOW_MORE_LABEL_many": "Show <2>{{count}}</2> more tags",
@@ -145,14 +143,11 @@
145143
"__BUGS_PAGE_FILTER_DRAWER_CONFIRM_BUTTON": "Vedi risultati",
146144
"__BUGS_PAGE_FILTER_DRAWER_HEADER_TITLE": "Tutti i filtri",
147145
"__BUGS_PAGE_FILTER_DRAWER_RESET_BUTTON": "Cancella filtri",
148-
"__BUGS_PAGE_GROUPED_BY_SEVERITY_PERCENTAGE_OF_TOTAL": "<0><0>{{percentage}}%</0> dei bug totali</0>",
149146
"__BUGS_PAGE_HEADER_UNIQUE_BUGS_ON_TOTAL": "<0><0>{{numerator}} </0><1>bug unici</1><2>/{{denominator}} tot.</2><3> di cui</3></0>",
150147
"__BUGS_PAGE_LIGHTBOX_TITLE": "BUG ID {{bugId}}",
151148
"__BUGS_PAGE_LIGHTBOX_TITLE_ATTACHMENTS_COUNT": "| Immagini e video allegati ({{attachments}})",
152149
"__BUGS_PAGE_NO_USECASE": "Non un caso d'uso specifico",
153-
"__BUGS_PAGE_OTHER_SEVERITIES": "Altre gravità",
154150
"__BUGS_PAGE_OTHER_USE_CASES": "Altri Use Case",
155-
"__BUGS_PAGE_SEVERITY": "Gravità",
156151
"__BUGS_PAGE_SHARE_BUG_MODAL_CTA_ERROR_TEXT": "Qualcosa è andato storto, per favore riprova.",
157152
"__BUGS_PAGE_SHARE_BUG_MODAL_CTA_SUCCESS_TEXT": "Link copiato",
158153
"__BUGS_PAGE_SHARE_BUG_MODAL_CTA_TEXT": "Copia link",
@@ -175,6 +170,7 @@
175170
"__BUGS_PAGE_USECASE_COMPLETION_4_TOOLTIP": "Siamo pronti con lo Use Case: analizza tutti i bug raccolti",
176171
"__BUGS_PAGE_VIEW_BUG_TOOLTIP": "Apri il bug",
177172
"__BUGS_PAGE_WARNING_POSSIBLE_EMPTY_CASES": "Al momento non abbiamo trovato bug in altri Use Case oppure il test non prevede altri Use Case",
173+
"__BUGS_PRIORITY_FILTER_ITEM_NO_ITEMS": "Tutte le priorità",
178174
"__BUGS_READ_FILTER_ITEM_ALL": "Tutti i bug",
179175
"__BUGS_READ_FILTER_ITEM_DRAWER_ALL": "Tutti",
180176
"__BUGS_READ_FILTER_ITEM_PLACEHOLDER": "Letti/non letti",
@@ -185,7 +181,6 @@
185181
"__BUGS_TABLE_BUG_ID_HEADER_COLUMN": "Bug ID",
186182
"__BUGS_TABLE_DUPLICATE_HEADER_COLUMN": "Duplicati",
187183
"__BUGS_TABLE_PRIORITY_HEADER_COLUMN": "Priorità",
188-
"__BUGS_PRIORITY_FILTER_ITEM_NO_ITEMS": "Tutte le priorità",
189184
"__BUGS_TABLE_SEVERITY_HEADER_COLUMN": "Gravità",
190185
"__BUGS_TABLE_TITLE_HEADER_COLUMN": "Bug",
191186
"__BUGS_TAGS_FILTER_ITEM_NO_ITEMS": "Tag",
@@ -664,6 +659,9 @@
664659
"OS ({{count}})_one": "OS ({{count}})",
665660
"OS ({{count}})_many": "",
666661
"OS ({{count}})_other": "OS ({{count}})",
662+
"Priority ({{count}})_one": "",
663+
"Priority ({{count}})_many": "",
664+
"Priority ({{count}})_other": "",
667665
"Replicability ({{count}})_one": "Replicabilità ({{count}})",
668666
"Replicability ({{count}})_many": "",
669667
"Replicability ({{count}})_other": "Replicabilità ({{count}})",
Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,30 @@
1-
import { useTranslation } from 'react-i18next';
2-
import { useAppDispatch } from 'src/app/hooks';
3-
import { theme } from 'src/app/theme';
4-
import Table from 'src/common/components/Table';
5-
import {
6-
getSelectedBugId,
7-
selectBug,
8-
} from 'src/features/bugsPage/bugsPageSlice';
1+
import { theme as globalTheme } from 'src/app/theme';
2+
import useWindowSize from 'src/hooks/useWindowSize';
93
import { TableBugType } from '../../types';
104
import { InfoRow } from './components/InfoRow';
11-
import { mapBugsToTableData } from './utils/mapBugsToTableData';
12-
import { useTableColumns } from './hooks/useTableColumns';
5+
import UseCaseTable from './components/UseCaseTable';
6+
import BugCards from './components/BugCards';
137

14-
export const AllBugs = ({ bugs }: { bugs: TableBugType[] }) => {
15-
const currentBugId = getSelectedBugId();
16-
const { t } = useTranslation();
17-
const { columns } = useTableColumns();
18-
const dispatch = useAppDispatch();
8+
export const AllBugs = ({
9+
campaignId,
10+
bugs,
11+
}: {
12+
campaignId: number;
13+
bugs: TableBugType[];
14+
}) => {
15+
const { width } = useWindowSize();
16+
17+
const breakpointMd = parseInt(globalTheme.breakpoints.md, 10);
18+
const isMdBreakpoint = width < breakpointMd;
1919

2020
return (
21-
<div>
21+
<>
2222
<InfoRow bugs={bugs} />
23-
<Table
24-
style={{ marginBottom: theme.space.sm, marginTop: theme.space.xs }}
25-
columns={columns}
26-
data={mapBugsToTableData(bugs, t)}
27-
selectedRow={currentBugId ? currentBugId.toString() : null}
28-
onRowClick={(bug_id) =>
29-
dispatch(selectBug({ bug_id: parseInt(bug_id, 10) }))
30-
}
31-
isSticky
32-
/>
33-
</div>
23+
{isMdBreakpoint ? (
24+
<BugCards bugs={bugs} />
25+
) : (
26+
<UseCaseTable campaignId={campaignId} item={{ bugs }} />
27+
)}
28+
</>
3429
);
3530
};

src/pages/Bugs/Content/BugsTable/BugsByUsecase.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ import { useMemo } from 'react';
33
import { getSelectedFilters } from 'src/features/bugsPage/bugsPageSlice';
44
import { useTranslation } from 'react-i18next';
55
import { EmptyState } from './components/EmptyState';
6-
import SingleGroupTable from './components/SingleGroupTable';
6+
import UseCaseAccordion from './components/UseCaseAccordion';
77
import { BugByUsecaseType } from './types';
88
import { CompletionTooltip } from './components/CompletionTooltip';
99
import { EmptyGroup } from './components/EmptyGroup';
1010

1111
export const BugsByUsecase = ({
12+
campaignId,
1213
bugsByUseCases,
1314
}: {
15+
campaignId: number;
1416
bugsByUseCases: BugByUsecaseType[];
1517
}) => {
1618
const { t } = useTranslation();
@@ -45,7 +47,8 @@ export const BugsByUsecase = ({
4547
isBare
4648
>
4749
{useCases.map((item) => (
48-
<SingleGroupTable
50+
<UseCaseAccordion
51+
campaignId={campaignId}
4952
key={item.useCase.id}
5053
title={
5154
<>
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { Tag } from '@appquality/unguess-design-system';
2+
import { useTranslation } from 'react-i18next';
3+
import { BugCard } from 'src/common/components/BugCard';
4+
import { Meta } from 'src/common/components/Meta';
5+
import { theme as globalTheme } from 'src/app/theme';
6+
import { SeverityTag } from 'src/common/components/tag/SeverityTag';
7+
import { Bug } from 'src/features/api';
8+
import { getLocalizedBugUrl } from 'src/hooks/useLocalizeDashboardUrl';
9+
import i18n from 'src/i18n';
10+
import styled from 'styled-components';
11+
12+
const Container = styled.div`
13+
margin-top: ${({ theme }) => theme.space.sm};
14+
`;
15+
16+
const StyledBugCard = styled(BugCard)`
17+
margin-bottom: ${({ theme }) => theme.space.base * 4}px;
18+
`;
19+
20+
interface BugCardsProps {
21+
bugs: (Bug & {
22+
siblings: number;
23+
tags?:
24+
| {
25+
tag_id: number;
26+
tag_name: string;
27+
}[]
28+
| undefined;
29+
})[];
30+
}
31+
32+
const BugCards = ({ bugs }: BugCardsProps) => {
33+
const { t } = useTranslation();
34+
35+
return (
36+
<Container>
37+
{bugs.map((bug) => (
38+
<StyledBugCard
39+
key={bug.id}
40+
severity={bug.severity.name.toLocaleLowerCase() as Severities}
41+
>
42+
{(severity) => (
43+
<>
44+
<BugCard.TopTitle>ID {bug.id}</BugCard.TopTitle>
45+
<BugCard.Title
46+
url={getLocalizedBugUrl(bug.campaign_id, bug.id, i18n.language)}
47+
>
48+
{bug.title.compact}
49+
</BugCard.Title>
50+
<BugCard.Footer>
51+
{bug.title.context &&
52+
bug.title.context.length > 0 &&
53+
bug.title.context.map((context: string) => (
54+
<Tag key={`${bug.id}_${context}`}>{context}</Tag>
55+
))}
56+
<Tag>
57+
{t('__BUGS_PAGE_BUG_CARD_DUPLICATES_LABEL')}: {bug.siblings}
58+
</Tag>
59+
<Tag>{bug.type.name}</Tag>
60+
{severity && <SeverityTag hasBackground severity={severity} />}
61+
{!bug.read && (
62+
<Meta color={globalTheme.palette.blue[600]}>
63+
{t('__PAGE_BUGS_UNREAD_PILL', 'Unread')}
64+
</Meta>
65+
)}
66+
</BugCard.Footer>
67+
</>
68+
)}
69+
</StyledBugCard>
70+
))}
71+
</Container>
72+
);
73+
};
74+
75+
export default BugCards;

0 commit comments

Comments
 (0)