Skip to content

Commit 827742a

Browse files
snomiaoclaude
andcommitted
refactor: consolidate duplicate NodeVersionStatusBadge components and remove redundant stories
- Merged two NodeVersionStatusBadge implementations into a single comprehensive component - Removed duplicate components/nodes/NodeVersionStatusBadge.tsx - Updated imports to use the unified NodeVersionStatusBadge component - Removed duplicate ContainerComponent.stories.tsx file - Preserved separate NodeStatusBadge component for node-level status vs version-level status 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 0281ed9 commit 827742a

File tree

7 files changed

+82
-153
lines changed

7 files changed

+82
-153
lines changed

components/NodeStatusBadge.tsx

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

components/NodeStatusReason.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
import { NodeVersionStatusToReadable } from 'src/mapper/nodeversion'
2424
import yaml from 'yaml'
2525
import { z } from 'zod'
26-
import { NodeStatusBadge } from './NodeStatusBadge'
26+
import { NodeVersionStatusBadge } from './NodeVersionStatusBadge'
2727
import { parseIssueList } from './parseIssueList'
2828
import { parseJsonSafe } from './parseJsonSafe'
2929

@@ -266,7 +266,7 @@ export function NodeStatusReason(nv: NodeVersion) {
266266
key={status}
267267
className="flex gap-2 items-center"
268268
>
269-
<NodeStatusBadge
269+
<NodeVersionStatusBadge
270270
status={status as NodeVersionStatus}
271271
count={count}
272272
/>
@@ -315,7 +315,7 @@ export function NodeStatusReason(nv: NodeVersion) {
315315
}`}
316316
>
317317
<div className="sticky left-0 z-10 flex gap-1 whitespace-nowrap bg-gray-800 w-[8rem] justify-end flex-0 justify-between">
318-
<NodeStatusBadge
318+
<NodeVersionStatusBadge
319319
status={
320320
nv.status as NodeVersionStatus
321321
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import { Badge } from 'flowbite-react'
2+
import { NodeVersionStatus } from '@/src/api/generated'
3+
import { NodeVersionStatusToReadable } from 'src/mapper/nodeversion'
4+
import { useNextTranslation } from '@/src/hooks/i18n'
5+
6+
export function NodeVersionStatusBadge({
7+
status,
8+
count,
9+
}: {
10+
status?: NodeVersionStatus
11+
count?: number
12+
}) {
13+
const { t } = useNextTranslation()
14+
15+
if (!status) {
16+
return null
17+
}
18+
19+
if (status === NodeVersionStatus.NodeVersionStatusActive) {
20+
return (
21+
<Badge color="success" className="text-[14px]">
22+
{t('Live')}
23+
{count != null && (
24+
<span> {t('×{{count}}', '×{{count}}', { count })}</span>
25+
)}
26+
</Badge>
27+
)
28+
}
29+
30+
if (
31+
status === NodeVersionStatus.NodeVersionStatusPending ||
32+
status === NodeVersionStatus.NodeVersionStatusFlagged
33+
) {
34+
return (
35+
<Badge color="warning" className="text-[14px]">
36+
{status === NodeVersionStatus.NodeVersionStatusPending
37+
? t('Pending Security Review')
38+
: NodeVersionStatusToReadable({ status })}
39+
{count != null && (
40+
<span> {t('×{{count}}', '×{{count}}', { count })}</span>
41+
)}
42+
</Badge>
43+
)
44+
}
45+
46+
if (status === NodeVersionStatus.NodeVersionStatusBanned) {
47+
return (
48+
<Badge color="failure" className="text-[14px]">
49+
{t('Rejected')}
50+
{count != null && (
51+
<span> {t('×{{count}}', '×{{count}}', { count })}</span>
52+
)}
53+
</Badge>
54+
)
55+
}
56+
57+
return (
58+
<Badge
59+
color={
60+
{
61+
[NodeVersionStatus.NodeVersionStatusActive]: 'success',
62+
[NodeVersionStatus.NodeVersionStatusBanned]: 'failure',
63+
[NodeVersionStatus.NodeVersionStatusFlagged]: 'warning',
64+
}[status as NodeVersionStatus] || 'gray'
65+
}
66+
className="text-[14px]"
67+
>
68+
{NodeVersionStatusToReadable({ status })}
69+
{count != null && (
70+
<span> {t('×{{count}}', '×{{count}}', { count })}</span>
71+
)}
72+
</Badge>
73+
)
74+
}
75+
76+
export default NodeVersionStatusBadge

components/nodes/NodeVersionStatusBadge.tsx

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

pages/admin/node-version-compatibility.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import NodeVersionCompatibilityEditModal from '@/components/admin/NodeVersionCom
4040
import { CustomPagination } from '@/components/common/CustomPagination'
4141
import { useSearchParameter } from '@/src/hooks/useSearchParameter'
4242
import { NodeVersionStatusToReadable } from '@/src/mapper/nodeversion'
43-
import NodeVersionStatusBadge from '@/components/nodes/NodeVersionStatusBadge'
43+
import NodeVersionStatusBadge from '@/components/NodeVersionStatusBadge'
4444
import { usePage } from '@/components/hooks/usePage'
4545
import { useQueryClient } from '@tanstack/react-query'
4646
import { toast } from 'react-toastify'

pages/admin/nodeversions.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { CustomPagination } from '@/components/common/CustomPagination'
22
import withAdmin from '@/components/common/HOC/authAdmin'
33
import { AdminCreateNodeFormModal } from '@/components/nodes/AdminCreateNodeFormModal'
4-
import { NodeStatusBadge } from '@/components/NodeStatusBadge'
4+
import { NodeVersionStatusBadge } from '@/components/NodeVersionStatusBadge'
55
import { NodeStatusReason, zStatusReason } from '@/components/NodeStatusReason'
66
import { parseJsonSafe } from '@/components/parseJsonSafe'
77
import {
@@ -1103,7 +1103,7 @@ function NodeVersionList({}) {
11031103
</span>
11041104
</Label>
11051105

1106-
<NodeStatusBadge
1106+
<NodeVersionStatusBadge
11071107
status={nv.status as NodeVersionStatus}
11081108
/>
11091109
</div>

src/stories/components/common/ContainerComponent.stories.tsx

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

0 commit comments

Comments
 (0)