mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	* Add camera group config * Add saving of camera group selection * Implement camera groups in config and live view * Fix warnings * Add tooltips to camera group items on desktop * Add camera groups to the filters for events * Fix tooltips and group selection * Cleanup
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { BsPersonWalking } from "react-icons/bs";
 | |
| import {
 | |
|   FaAmazon,
 | |
|   FaCarSide,
 | |
|   FaCat,
 | |
|   FaCircle,
 | |
|   FaDog,
 | |
|   FaFedex,
 | |
|   FaFire,
 | |
|   FaLeaf,
 | |
|   FaUps,
 | |
| } from "react-icons/fa";
 | |
| import { LuBox, LuLassoSelect } from "react-icons/lu";
 | |
| import { MdRecordVoiceOver } from "react-icons/md";
 | |
| 
 | |
| export function getIconTypeForGroup(icon: string) {
 | |
|   switch (icon) {
 | |
|     case "car":
 | |
|       return FaCarSide;
 | |
|     case "cat":
 | |
|       return FaCat;
 | |
|     case "dog":
 | |
|       return FaDog;
 | |
|     case "leaf":
 | |
|       return FaLeaf;
 | |
|     default:
 | |
|       return FaCircle;
 | |
|   }
 | |
| }
 | |
| 
 | |
| export function getIconForGroup(icon: string, className: string = "size-4") {
 | |
|   const GroupIcon = getIconTypeForGroup(icon);
 | |
|   return <GroupIcon className={className} />;
 | |
| }
 | |
| 
 | |
| export function getIconForLabel(label: string, className?: string) {
 | |
|   switch (label) {
 | |
|     case "car":
 | |
|       return <FaCarSide key={label} className={className} />;
 | |
|     case "cat":
 | |
|       return <FaCat key={label} className={className} />;
 | |
|     case "bark":
 | |
|     case "dog":
 | |
|       return <FaDog key={label} className={className} />;
 | |
|     case "fire_alarm":
 | |
|       return <FaFire key={label} className={className} />;
 | |
|     case "package":
 | |
|       return <LuBox key={label} className={className} />;
 | |
|     case "person":
 | |
|       return <BsPersonWalking key={label} className={className} />;
 | |
|     case "crying":
 | |
|     case "laughter":
 | |
|     case "scream":
 | |
|     case "speech":
 | |
|     case "yell":
 | |
|       return <MdRecordVoiceOver key={label} className={className} />;
 | |
|     default:
 | |
|       return <LuLassoSelect key={label} className={className} />;
 | |
|   }
 | |
| }
 | |
| 
 | |
| export function getIconForSubLabel(label: string, className?: string) {
 | |
|   switch (label) {
 | |
|     case "amazon":
 | |
|       return <FaAmazon key={label} className={className} />;
 | |
|     case "fedex":
 | |
|       return <FaFedex key={label} className={className} />;
 | |
|     case "ups":
 | |
|       return <FaUps key={label} className={className} />;
 | |
|   }
 | |
| }
 |