@blueprintjs/select
Version:
Components related to selecting items from a list
48 lines (47 loc) • 2.35 kB
TypeScript
import * as React from "react";
import { type MenuItemProps } from "@blueprintjs/core";
import type { ItemPredicate, ItemRenderer, ItemRendererProps } from "../common";
export interface Film {
/** Title of film. */
title: string;
/** Release year. */
year: number;
/** IMDb ranking. */
rank: number;
}
/** Top 100 films as rated by IMDb users. http://www.imdb.com/chart/top */
export declare const TOP_100_FILMS: Film[];
/**
* Takes the same arguments as `ItemRenderer<Film>`, but returns the common menu item
* props for that item instead of the rendered element itself. This is useful for implementing
* custom item renderers.
*/
export declare function getFilmItemProps(film: Film, { handleClick, handleFocus, modifiers, query, ref }: ItemRendererProps): MenuItemProps & React.Attributes;
/**
* Simple film item renderer for "menu" containers. Does not support "selected" appearance.
*/
export declare const renderFilm: ItemRenderer<Film>;
/**
* Renders a menu item to create a single film from a given query string.
*/
export declare const renderCreateFilmMenuItem: (query: string, active: boolean, handleClick: React.MouseEventHandler<HTMLElement>) => React.JSX.Element;
/**
* Renders a menu item to create one or more films from a given query string.
*/
export declare const renderCreateFilmsMenuItem: (query: string, active: boolean, handleClick: React.MouseEventHandler<HTMLElement>) => React.JSX.Element;
export declare const filterFilm: ItemPredicate<Film>;
export declare function createFilm(title: string): Film;
export declare function createFilms(query: string): Film[];
export declare function areFilmsEqual(filmA: Film, filmB: Film): boolean;
export declare function doesFilmEqualQuery(film: Film, query: string): boolean;
export declare function arrayContainsFilm(films: Film[], filmToFind: Film): boolean;
export declare function addFilmToArray(films: Film[], filmToAdd: Film): Film[];
export declare function deleteFilmFromArray(films: Film[], filmToDelete: Film): Film[];
export declare function maybeAddCreatedFilmToArrays(items: Film[], createdItems: Film[], film: Film): {
createdItems: Film[];
items: Film[];
};
export declare function maybeDeleteCreatedFilmFromArrays(items: Film[], createdItems: Film[], film: Film | undefined): {
createdItems: Film[];
items: Film[];
};