summaryrefslogtreecommitdiff
path: root/lib/avl/components/project-field-utils.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-09-15 18:58:07 +0900
committerjoonhoekim <26rote@gmail.com>2025-09-15 18:58:07 +0900
commit2b490956c9752c1b756780a3461bc1c37b6fe0a7 (patch)
treeb0b8a03c8de5dfce4b6c7373a9d608306e9147c0 /lib/avl/components/project-field-utils.ts
parente7818a457371849e29519497ebf046f385f05ab6 (diff)
(김준회) AVL 관리 및 상세 - 기능 구현 1차
+ docker compose 내 오류 수정
Diffstat (limited to 'lib/avl/components/project-field-utils.ts')
-rw-r--r--lib/avl/components/project-field-utils.ts45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/avl/components/project-field-utils.ts b/lib/avl/components/project-field-utils.ts
new file mode 100644
index 00000000..d3d84295
--- /dev/null
+++ b/lib/avl/components/project-field-utils.ts
@@ -0,0 +1,45 @@
+// 프로젝트 검색 상태 타입
+export type ProjectSearchStatus = 'idle' | 'searching' | 'success-projects' | 'success-bidding' | 'error'
+
+// 프로젝트 상태에 따른 스타일링 유틸리티 함수들
+export const getLabelStatusClassName = (status: ProjectSearchStatus): string => {
+ switch (status) {
+ case 'error':
+ return 'text-red-600'
+ case 'success-projects':
+ case 'success-bidding':
+ return 'text-green-600'
+ case 'searching':
+ return 'text-blue-600'
+ default:
+ return 'text-muted-foreground'
+ }
+}
+
+export const getDisplayElementStatusClassName = (status: ProjectSearchStatus): string => {
+ switch (status) {
+ case 'error':
+ return 'border-red-300'
+ case 'success-projects':
+ case 'success-bidding':
+ return 'border-green-300'
+ case 'searching':
+ return 'border-blue-300'
+ default:
+ return 'border-input'
+ }
+}
+
+export const getInputStatusClassName = (status: ProjectSearchStatus): string => {
+ switch (status) {
+ case 'error':
+ return 'border-red-300 focus:border-red-500 focus:ring-red-500/20'
+ case 'success-projects':
+ case 'success-bidding':
+ return 'border-green-300 focus:border-green-500 focus:ring-green-500/20'
+ case 'searching':
+ return 'border-blue-300 focus:border-blue-500 focus:ring-blue-500/20'
+ default:
+ return ''
+ }
+}