/* eslint-disable @typescript-eslint/no-explicit-any */ import { cloneElement, useState } from "react"; import ViewItem from "./ViewItem"; import { View } from "../../data/userView"; import { SYSTEM_DEFAULT } from "../../../../constant"; import FactoryRenderer from "../../../../Renderer"; export type UserViewViewProps = { selectedView?: View; allViews: View[]; disabled: boolean; onViewToggle: () => void; setDefault: (id: string) => void; onDelete: (id: string) => void; onSave: (id: string) => void; markAsSelected: (view: View) => void; hasUnsavedChanges?: boolean; }; const UserViewView = ({ selectedView, allViews, disabled, onViewToggle, setDefault, onDelete, onSave, markAsSelected, hasUnsavedChanges, }: UserViewViewProps) => { const [viewToDelete, setViewToDelete] = useState(null); return (
{hasUnsavedChanges && selectedView?.id && selectedView?.id !== SYSTEM_DEFAULT && ( )}
} itemRender={(li: any, itemProp: any) => { const isSelected = itemProp.dataItem?.id === selectedView?.id; return cloneElement( li, { ...li.props, className: `qo-font-md ${ li.props.className || "" } prc-dropdown-list-item${ isSelected ? " prc-dropdown-list-item--selected" : "" }`, }, setViewToDelete(view)} />, ); }} fillMode={"flat"} popupSettings={{ popupClass: "tmpl-button-popup", }} /> {viewToDelete && ( { onDelete(viewToDelete.id); setViewToDelete(null); }} onCancel={() => setViewToDelete(null)} /> )} ); }; export default UserViewView;