UNPKG

2.34 kBTypeScriptView Raw
1import * as React from "react";
2import { MenuItemProps } from "@blueprintjs/core";
3import type { ItemPredicate, ItemRenderer, ItemRendererProps } from "../common";
4export interface Film {
5 /** Title of film. */
6 title: string;
7 /** Release year. */
8 year: number;
9 /** IMDb ranking. */
10 rank: number;
11}
12/** Top 100 films as rated by IMDb users. http://www.imdb.com/chart/top */
13export declare const TOP_100_FILMS: Film[];
14/**
15 * Takes the same arguments as `ItemRenderer<Film>`, but returns the common menu item
16 * props for that item instead of the rendered element itself. This is useful for implementing
17 * custom item renderers.
18 */
19export declare function getFilmItemProps(film: Film, { handleClick, handleFocus, modifiers, query }: ItemRendererProps): MenuItemProps & React.Attributes & React.HTMLAttributes<HTMLAnchorElement>;
20/**
21 * Simple film item renderer _without_ support for "selected" appearance.
22 */
23export declare const renderFilm: ItemRenderer<Film>;
24/**
25 * Renders a menu item to create a single film from a given query string.
26 */
27export declare const renderCreateFilmMenuItem: (query: string, active: boolean, handleClick: React.MouseEventHandler<HTMLElement>) => JSX.Element;
28/**
29 * Renders a menu item to create one or more films from a given query string.
30 */
31export declare const renderCreateFilmsMenuItem: (query: string, active: boolean, handleClick: React.MouseEventHandler<HTMLElement>) => JSX.Element;
32export declare const filterFilm: ItemPredicate<Film>;
33export declare function createFilm(title: string): Film;
34export declare function createFilms(query: string): Film[];
35export declare function areFilmsEqual(filmA: Film, filmB: Film): boolean;
36export declare function doesFilmEqualQuery(film: Film, query: string): boolean;
37export declare function arrayContainsFilm(films: Film[], filmToFind: Film): boolean;
38export declare function addFilmToArray(films: Film[], filmToAdd: Film): Film[];
39export declare function deleteFilmFromArray(films: Film[], filmToDelete: Film): Film[];
40export declare function maybeAddCreatedFilmToArrays(items: Film[], createdItems: Film[], film: Film): {
41 createdItems: Film[];
42 items: Film[];
43};
44export declare function maybeDeleteCreatedFilmFromArrays(items: Film[], createdItems: Film[], film: Film): {
45 createdItems: Film[];
46 items: Film[];
47};