import type { ReactNode } from "react"; import { useCallback } from "react"; import type { SelectProps } from "@mantine/core"; import { Button, Flex, Group, Select, TableTd, TableTr, Text } from "@mantine/core"; import { Icon123, IconCheck } from "@tabler/icons-react"; import { useI18n } from "@homarr/translation/client"; import { useAccessContext } from "./context"; import type { HandleCountChange } from "./form"; import { useFormContext } from "./form"; interface AccessSelectRowProps { itemContent: ReactNode; permission: string; index: number; handleCountChange: HandleCountChange; } export const AccessSelectRow = ({ itemContent, permission, index, handleCountChange }: AccessSelectRowProps) => { const tRoot = useI18n(); const { icons, getSelectData } = useAccessContext(); const form = useFormContext(); const handleRemove = useCallback(() => { form.setFieldValue( "items", form.values.items.filter((_, i) => i !== index), ); handleCountChange((prev) => prev - 1); }, [form, index, handleCountChange]); const Icon = icons[permission] ?? Icon123; return ( {itemContent}