import { View } from "react-native";
import { TableControls } from "@/components/shared/TableControls";
import { SelectionControls } from "@/components/features/users/SelectionControls";
import { RiskEnum, RiskLabels } from "@/constants/riskEnum";
import {
CombinedFilterMenu,
CombinedFilterSection,
} from "@/components/shared/filters/CombinedFilterMenu";
import {
SelectedFilterChips,
SelectedChip,
} from "@/components/shared/filters/SelectedFilterChips";
import { RiskIndicator } from "@/components/ui/RiskIndicator";
import { Button } from "@/components/ui/Button";
interface UserTableControlsProps {
searchQuery: string;
selectAll?: boolean;
selectedItems?: string[];
menuVisible: boolean;
menuAnchor: { x: number; y: number };
selectedRisks?: RiskEnum[];
onSearch: (query: string) => void;
onSelectAll: () => void;
onBulkDelete: () => void;
onMenuDismiss: () => void;
onItemsPerPageChange: (value: number) => void;
onSelectRisks: (risks: RiskEnum[]) => void;
itemsPerPage?: number;
onAddUser: () => void;
onAddingUser: boolean;
}
export const UserTableControls = ({
searchQuery,
selectAll = false,
selectedItems = [],
menuVisible,
menuAnchor,
selectedRisks = [],
onSearch,
onSelectAll,
onBulkDelete,
onMenuDismiss,
onItemsPerPageChange,
onSelectRisks,
itemsPerPage = 25,
onAddUser,
onAddingUser = false,
}: UserTableControlsProps) => {
const renderFilterComponent = () => {
const riskOptions = Object.values(RiskEnum).map((risk) => ({
value: risk,
label: RiskLabels[risk],
icon: ,
}));
const sections: CombinedFilterSection[] = [];
sections.push({
key: "risk",
title: "Risk",
options: riskOptions,
selected: selectedRisks,
onChange: (values) => onSelectRisks(values as RiskEnum[]),
});
return (
onSelectRisks([])}
/>
);
};
const renderFilterChips = () => {
const chips: SelectedChip[] = selectedRisks.map((risk) => ({
key: `risk-${risk}`,
label: RiskLabels[risk],
onRemove: () =>
onSelectRisks(
selectedRisks.filter((selectedFilter) => selectedFilter !== risk)
),
}));
return chips.length > 0 ? : null;
};
const renderActionButtons = () => {
return (
{onAddUser ? (
) : null}
);
};
return (
);
};