import React from 'react'; import { Typography, Select, Button, Checkbox, Tooltip, Tag } from 'antd'; import { CloseOutlined, EyeInvisibleOutlined, StopOutlined, FilterOutlined } from '@ant-design/icons'; import { PiiEntityCategory } from './types'; const { Text } = Typography; const { Option } = Select; // Helper functions export const formatEntityName = (name: string) => { return name.replace(/_/g, ' '); }; export const getActionIcon = (action: string) => { switch(action) { case 'MASK': return ; case 'BLOCK': return ; default: return null; } }; // CategoryFilter component export interface CategoryFilterProps { categories: PiiEntityCategory[]; selectedCategories: string[]; onChange: (categories: string[]) => void; } export const CategoryFilter: React.FC = ({ categories, selectedCategories, onChange }) => { return (
Filter by category
); }; // QuickActions component export interface QuickActionsProps { onSelectAll: (action: string) => void; onUnselectAll: () => void; hasSelectedEntities: boolean; } export const QuickActions: React.FC = ({ onSelectAll, onUnselectAll, hasSelectedEntities }) => { return (
Quick Actions
); }; // PiiEntityList component export interface PiiEntityListProps { entities: string[]; selectedEntities: string[]; selectedActions: {[key: string]: string}; actions: string[]; onEntitySelect: (entity: string) => void; onActionSelect: (entity: string, action: string) => void; entityToCategoryMap: Map; } export const PiiEntityList: React.FC = ({ entities, selectedEntities, selectedActions, actions, onEntitySelect, onActionSelect, entityToCategoryMap }) => { return (
PII Type Action
{entities.length === 0 ? (
No PII types match your filter criteria
) : ( entities.map(entity => (
onEntitySelect(entity)} className="mr-3" /> {formatEntityName(entity)} {entityToCategoryMap.get(entity) && ( {entityToCategoryMap.get(entity)} )}
)) )}
); };