import React from 'react'; import { Link } from 'react-router-dom'; import { TagIcon, FolderIcon, XMarkIcon } from '@heroicons/react/24/outline'; import { Tag } from '../../entities/Tag'; import { Project } from '../../entities/Project'; interface InboxSelectedChipsProps { selectedTags: string[]; selectedProjects: string[]; tags: Tag[]; projects: Project[]; onRemoveTag: (tagName: string) => void; onRemoveProject: (projectName: string) => void; } const InboxSelectedChips: React.FC = ({ selectedTags, selectedProjects, tags, projects, onRemoveTag, onRemoveProject, }) => { const slugify = (text: string) => text .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/^-|-$/g, ''); const renderTagChip = (tagName: string, index: number) => { const tag = tags.find( (t) => t.name.toLowerCase() === tagName.toLowerCase() ); if (tag) { const tagPath = tag.uid ? `/tag/${tag.uid}-${slugify(tag.name)}` : null; return ( {tagPath ? ( e.stopPropagation()} > {tagName} ) : ( {tagName} )} ); } return ( {tagName} ); }; const renderProjectChip = (projectName: string, index: number) => { const project = projects.find( (p) => p.name.toLowerCase() === projectName.toLowerCase() ); if (project) { return ( e.stopPropagation()} > {projectName} ); } return ( {projectName} ); }; return ( <> {selectedTags.length > 0 && (
{selectedTags.map((tagName, index) => renderTagChip(tagName, index) )}
)} {selectedProjects.length > 0 && (
{selectedProjects.map((projectName, index) => renderProjectChip(projectName, index) )}
)} ); }; export default InboxSelectedChips;