@mui/x-tree-view
Version:
The community edition of the MUI X Tree View components.
50 lines • 2.12 kB
TypeScript
import { DefaultizedProps } from '@mui/x-internals/types';
import { TreeViewPluginSignature } from "../../models/index.js";
import { TreeViewItemId } from "../../../models/index.js";
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
export interface UseTreeViewLabelPublicAPI {
/**
* Used to update the label of an item.
* @param {TreeViewItemId} itemId The id of the item to update the label of.
* @param {string} newLabel The new label of the item.
*/
updateItemLabel: (itemId: TreeViewItemId, newLabel: string) => void;
/**
* Set which item is currently being edited.
* You can pass `null` to exit editing mode.
* @param {TreeViewItemId | null} itemId The id of the item to edit, or `null` to exit editing mode.
*/
setEditedItem: (itemId: TreeViewItemId | null) => void;
}
export interface UseTreeViewLabelInstance extends UseTreeViewLabelPublicAPI {}
export interface UseTreeViewLabelParameters<R extends {}> {
/**
* Callback fired when the label of an item changes.
* @param {TreeViewItemId} itemId The id of the item that was edited.
* @param {string} newLabel The new label of the items.
*/
onItemLabelChange?: (itemId: TreeViewItemId, newLabel: string) => void;
/**
* Determine if a given item can be edited.
* @template R
* @param {R} item The item to check.
* @returns {boolean} `true` if the item can be edited.
* @default () => false
*/
isItemEditable?: boolean | ((item: R) => boolean);
}
export type UseTreeViewLabelParametersWithDefaults<R extends {}> = DefaultizedProps<UseTreeViewLabelParameters<R>, 'isItemEditable'>;
export interface UseTreeViewLabelState {
label: {
isItemEditable: ((item: any) => boolean) | boolean;
editedItemId: TreeViewItemId | null;
};
}
export type UseTreeViewLabelSignature = TreeViewPluginSignature<{
params: UseTreeViewLabelParameters<any>;
paramsWithDefaults: UseTreeViewLabelParametersWithDefaults<any>;
publicAPI: UseTreeViewLabelPublicAPI;
instance: UseTreeViewLabelInstance;
state: UseTreeViewLabelState;
dependencies: [UseTreeViewItemsSignature];
}>;