Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/components/entities/rows/cells/RowSelectedOptionCell.tsx
T

36 lines
1.1 KiB
TypeScript

import { Colors } from "~/application/enums/shared/Colors";
import RenderOption from "../../properties/select/RenderOption";
import { SelectOptionsDisplay } from "~/utils/shared/SelectOptionsUtils";
import { translateSelectOptionLabel } from "~/utils/i18n/translateLabel";
import { useTranslation } from "react-i18next";
type ItemDto = { value: string; name: string | null; color: Colors };
export default function RowSelectedOptionCell({
value,
options,
display = "Name",
entityName,
propertyName,
}: {
value: string;
options: ItemDto[];
display: SelectOptionsDisplay;
entityName?: string;
propertyName?: string;
}) {
const { t, i18n } = useTranslation();
const selected = options.find((f) => f.value === value);
if (options.length === 0 || !selected) {
return value;
}
const translatedSelected =
entityName && propertyName ? { ...selected, name: translateSelectOptionLabel(t, i18n, entityName, propertyName, selected) } : selected;
return (
<>
<div className="flex items-center space-x-2">
<RenderOption option={translatedSelected} display={display} hasColors={true} />
</div>
</>
);
}