From 16802dfe733d7ae3e36468930f8c7b90574223ab Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Thu, 4 Dec 2025 12:59:48 +0900 Subject: [PATCH] Refactor: Extract getStatusColor utility to shared module --- packages/tui/apps/status/app.tsx | 37 +------------------------- packages/tui/apps/tag/app.tsx | 13 +-------- packages/tui/apps/unpublish/app.tsx | 13 +-------- packages/tui/src/utils/index.ts | 1 + packages/tui/src/utils/status-color.ts | 13 +++++++++ 5 files changed, 17 insertions(+), 60 deletions(-) create mode 100644 packages/tui/src/utils/status-color.ts diff --git a/packages/tui/apps/status/app.tsx b/packages/tui/apps/status/app.tsx index 197e7d29..ff656495 100644 --- a/packages/tui/apps/status/app.tsx +++ b/packages/tui/apps/status/app.tsx @@ -1,6 +1,7 @@ import { Box, Text, useApp, useInput } from "ink" import { useState } from "react" import { ErrorStep } from "../../src/components/error-step.js" +import { getStatusColor } from "../../src/utils/index.js" type ExpertChoice = { name: string @@ -120,18 +121,6 @@ function VersionSelector({ exit() } }) - const getStatusColor = (status: string) => { - switch (status) { - case "available": - return "green" - case "deprecated": - return "yellow" - case "disabled": - return "red" - default: - return undefined - } - } return ( Select a version of {expertName}: @@ -184,18 +173,6 @@ function StatusSelector({ exit() } }) - const getStatusColor = (status: string) => { - switch (status) { - case "available": - return "green" - case "deprecated": - return "yellow" - case "disabled": - return "red" - default: - return undefined - } - } return ( Select status for {expertKey}: @@ -255,18 +232,6 @@ function ConfirmStep({ } }) const statusChanged = status !== currentStatus - const getStatusColor = (s: string) => { - switch (s) { - case "available": - return "green" - case "deprecated": - return "yellow" - case "disabled": - return "red" - default: - return undefined - } - } return ( Confirm status change for {expertKey}: diff --git a/packages/tui/apps/tag/app.tsx b/packages/tui/apps/tag/app.tsx index b15fbaa5..baac35d6 100644 --- a/packages/tui/apps/tag/app.tsx +++ b/packages/tui/apps/tag/app.tsx @@ -1,6 +1,7 @@ import { Box, Text, useApp, useInput } from "ink" import { useState } from "react" import { ErrorStep } from "../../src/components/error-step.js" +import { getStatusColor } from "../../src/utils/index.js" type ExpertChoice = { name: string @@ -107,18 +108,6 @@ function VersionSelector({ exit() } }) - const getStatusColor = (status: string) => { - switch (status) { - case "available": - return "green" - case "deprecated": - return "yellow" - case "disabled": - return "red" - default: - return undefined - } - } return ( Select a version of {expertName}: diff --git a/packages/tui/apps/unpublish/app.tsx b/packages/tui/apps/unpublish/app.tsx index d6f4030f..57b19749 100644 --- a/packages/tui/apps/unpublish/app.tsx +++ b/packages/tui/apps/unpublish/app.tsx @@ -1,6 +1,7 @@ import { Box, Text, useApp, useInput } from "ink" import { useState } from "react" import { ErrorStep } from "../../src/components/error-step.js" +import { getStatusColor } from "../../src/utils/index.js" type ExpertChoice = { name: string @@ -99,18 +100,6 @@ function VersionSelector({ exit() } }) - const getStatusColor = (status: string) => { - switch (status) { - case "available": - return "green" - case "deprecated": - return "yellow" - case "disabled": - return "red" - default: - return undefined - } - } return ( Select a version of {expertName} to unpublish: diff --git a/packages/tui/src/utils/index.ts b/packages/tui/src/utils/index.ts index 90396fa4..c37ffbec 100644 --- a/packages/tui/src/utils/index.ts +++ b/packages/tui/src/utils/index.ts @@ -1,2 +1,3 @@ export { createErrorHandler } from "./error-handling.js" export { EventQueue } from "./event-queue.js" +export { getStatusColor } from "./status-color.js" diff --git a/packages/tui/src/utils/status-color.ts b/packages/tui/src/utils/status-color.ts new file mode 100644 index 00000000..f5c3ffbe --- /dev/null +++ b/packages/tui/src/utils/status-color.ts @@ -0,0 +1,13 @@ +type StatusColor = "green" | "yellow" | "red" +export const getStatusColor = (status: string): StatusColor | undefined => { + switch (status) { + case "available": + return "green" + case "deprecated": + return "yellow" + case "disabled": + return "red" + default: + return undefined + } +}