| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 'use client' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-09 15:05:40 +08:00
										 |  |  | import classNames from '@/utils/classnames' | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export type IndicatorProps = { | 
					
						
							|  |  |  |   color?: 'green' | 'orange' | 'red' | 'blue' | 'yellow' | 'gray' | 
					
						
							|  |  |  |   className?: string | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-26 12:01:51 +08:00
										 |  |  | export type ColorMap = { | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |   green: string | 
					
						
							|  |  |  |   orange: string | 
					
						
							|  |  |  |   red: string | 
					
						
							|  |  |  |   blue: string | 
					
						
							|  |  |  |   yellow: string | 
					
						
							|  |  |  |   gray: string | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const BACKGROUND_MAP: ColorMap = { | 
					
						
							| 
									
										
										
										
											2024-12-23 11:17:49 +08:00
										 |  |  |   green: 'bg-components-badge-status-light-success-bg', | 
					
						
							|  |  |  |   orange: 'bg-components-badge-status-light-warning-bg', | 
					
						
							|  |  |  |   red: 'bg-components-badge-status-light-error-bg', | 
					
						
							|  |  |  |   blue: 'bg-components-badge-status-light-normal-bg', | 
					
						
							| 
									
										
										
										
											2024-12-26 12:01:51 +08:00
										 |  |  |   yellow: 'bg-components-badge-status-light-warning-bg', | 
					
						
							| 
									
										
										
										
											2024-12-23 11:17:49 +08:00
										 |  |  |   gray: 'bg-components-badge-status-light-disabled-bg', | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | } | 
					
						
							|  |  |  | const BORDER_MAP: ColorMap = { | 
					
						
							| 
									
										
										
										
											2024-12-23 11:17:49 +08:00
										 |  |  |   green: 'border-components-badge-status-light-success-border-inner', | 
					
						
							|  |  |  |   orange: 'border-components-badge-status-light-warning-border-inner', | 
					
						
							|  |  |  |   red: 'border-components-badge-status-light-error-border-inner', | 
					
						
							|  |  |  |   blue: 'border-components-badge-status-light-normal-border-inner', | 
					
						
							| 
									
										
										
										
											2024-12-26 12:01:51 +08:00
										 |  |  |   yellow: 'border-components-badge-status-light-warning-border-inner', | 
					
						
							| 
									
										
										
										
											2024-12-23 11:17:49 +08:00
										 |  |  |   gray: 'border-components-badge-status-light-disabled-border-inner', | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | } | 
					
						
							|  |  |  | const SHADOW_MAP: ColorMap = { | 
					
						
							| 
									
										
										
										
											2024-12-26 12:01:51 +08:00
										 |  |  |   green: 'shadow-status-indicator-green-shadow', | 
					
						
							|  |  |  |   orange: 'shadow-status-indicator-warning-shadow', | 
					
						
							|  |  |  |   red: 'shadow-status-indicator-red-shadow', | 
					
						
							|  |  |  |   blue: 'shadow-status-indicator-blue-shadow', | 
					
						
							|  |  |  |   yellow: 'shadow-status-indicator-warning-shadow', | 
					
						
							|  |  |  |   gray: 'shadow-status-indicator-gray-shadow', | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default function Indicator({ | 
					
						
							|  |  |  |   color = 'green', | 
					
						
							|  |  |  |   className = '', | 
					
						
							|  |  |  | }: IndicatorProps) { | 
					
						
							|  |  |  |   return ( | 
					
						
							|  |  |  |     <div className={classNames( | 
					
						
							|  |  |  |       'w-2 h-2 border border-solid rounded-[3px]', | 
					
						
							|  |  |  |       BACKGROUND_MAP[color], | 
					
						
							|  |  |  |       BORDER_MAP[color], | 
					
						
							|  |  |  |       SHADOW_MAP[color], | 
					
						
							|  |  |  |       className, | 
					
						
							|  |  |  |     )}> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   ) | 
					
						
							|  |  |  | } |