Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix various issues with deprecated type references #5528

Merged
merged 3 commits into from
Sep 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/core/src/components/panel-stack/panelProps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import * as React from "react";
/**
* An object describing a panel in a `PanelStack`.
*
* @deprecated use `Panel<T>`
* @deprecated use `Panel<T>` with PanelStack2
*/
// eslint-disable-next-line @typescript-eslint/ban-types
export interface IPanel<P = {}> {
Expand Down Expand Up @@ -59,7 +59,7 @@ export interface IPanel<P = {}> {
* export class SettingsPanel extends React.Component<IPanelProps & ISettingsPanelProps> {...}
* ```
*
* @deprecated use `PanelActions<T>`
* @deprecated use `PanelActions<T>` with PanelStack2
*/
export interface IPanelProps {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ const DEPRECATED_TYPE_REFERENCES_BY_PACKAGE = {
"IOverflowListProps",
"IOverlayableProps",
"IOverlayProps",
"IPanel",
"IPanelActions",
// N.B. Panel corresponds to PanelStack2, so it is not a direct replacement for IPanel
// "IPanel",
// "IPanelProps",
"IPortalProps",
"IProgressBarProps",
"IResizeSensorProps",
Expand Down Expand Up @@ -121,6 +122,7 @@ const DEPRECATED_TYPE_REFERENCES_BY_PACKAGE = {
"IMultiSelectProps",
"IOmnibarProps",
"IQueryListProps",
"IQueryListRendererProps",
"ISelectProps",
"ISuggestProps",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/select/src/components/multi-select/multiSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import {
} from "@blueprintjs/core";

import { Classes, ListItemsProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

// N.B. selectedItems should really be a required prop, but is left optional for backwards compatibility

Expand Down Expand Up @@ -157,7 +157,7 @@ export class MultiSelect<T> extends AbstractPureComponent2<MultiSelectProps<T>,
);
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
const { fill, tagInputProps = {}, popoverProps = {}, selectedItems = [], placeholder } = this.props;
const { handlePaste, handleKeyDown, handleKeyUp } = listProps;

Expand Down
8 changes: 4 additions & 4 deletions packages/select/src/components/multi-select/multiSelect2.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import {
import { Popover2, Popover2TargetProps, PopupKind } from "@blueprintjs/popover2";

import { Classes, ListItemsProps, SelectPopoverProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

export interface MultiSelect2Props<T> extends ListItemsProps<T>, SelectPopoverProps {
/**
Expand Down Expand Up @@ -190,7 +190,7 @@ export class MultiSelect2<T> extends AbstractPureComponent2<MultiSelect2Props<T>
);
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
const { disabled, popoverContentProps = {}, popoverProps = {} } = this.props;
const { handleKeyDown, handleKeyUp } = listProps;

Expand Down Expand Up @@ -230,7 +230,7 @@ export class MultiSelect2<T> extends AbstractPureComponent2<MultiSelect2Props<T>
// the "fill" prop. Note that we must take `isOpen` as an argument to force this render function to be called
// again after that state changes.
private getPopoverTargetRenderer =
(listProps: IQueryListRendererProps<T>, isOpen: boolean) =>
(listProps: QueryListRendererProps<T>, isOpen: boolean) =>
// N.B. pull out `isOpen` so that it's not forwarded to the DOM, but remember not to use it directly
// since it may be stale (`renderTarget` is not re-invoked on this.state changes).
// eslint-disable-next-line react/display-name
Expand Down Expand Up @@ -355,7 +355,7 @@ export class MultiSelect2<T> extends AbstractPureComponent2<MultiSelect2Props<T>
};

private getTagInputAddHandler =
(listProps: IQueryListRendererProps<T>) => (values: any[], method: TagInputAddMethod) => {
(listProps: QueryListRendererProps<T>) => (values: any[], method: TagInputAddMethod) => {
if (method === "paste") {
listProps.handlePaste(values);
}
Expand Down
4 changes: 2 additions & 2 deletions packages/select/src/components/omnibar/omnibar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import * as React from "react";
import { DISPLAYNAME_PREFIX, InputGroup, InputGroupProps2, Overlay, OverlayProps } from "@blueprintjs/core";

import { Classes, ListItemsProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

// eslint-disable-next-line deprecation/deprecation
export type OmnibarProps<T> = IOmnibarProps<T>;
Expand Down Expand Up @@ -72,7 +72,7 @@ export class Omnibar<T> extends React.PureComponent<OmnibarProps<T>> {
return <this.TypedQueryList {...restProps} initialContent={initialContent} renderer={this.renderQueryList} />;
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
const { inputProps = {}, isOpen, overlayProps = {} } = this.props;
const { handleKeyDown, handleKeyUp } = listProps;
const handlers = isOpen ? { onKeyDown: handleKeyDown, onKeyUp: handleKeyUp } : {};
Expand Down
2 changes: 1 addition & 1 deletion packages/select/src/components/query-list/query-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ An object with the following properties will be passed to an `QueryList` `render

This interface is generic, accepting a type parameter `<T>` for an item in the list.

@interface IQueryListRendererProps
@interface QueryListRendererProps
6 changes: 5 additions & 1 deletion packages/select/src/components/query-list/queryList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export interface IQueryListProps<T> extends ListItemsProps<T> {
* Customize rendering of the component.
* Receives an object with props that should be applied to elements as necessary.
*/
renderer: (listProps: IQueryListRendererProps<T>) => JSX.Element;
renderer: (listProps: QueryListRendererProps<T>) => JSX.Element;

/**
* Whether the list is disabled.
Expand All @@ -73,9 +73,13 @@ export interface IQueryListProps<T> extends ListItemsProps<T> {
disabled?: boolean;
}

// eslint-disable-next-line deprecation/deprecation
export type QueryListRendererProps<T> = IQueryListRendererProps<T>;
/**
* An object describing how to render a `QueryList`.
* A `QueryList` `renderer` receives this object as its sole argument.
*
* @deprecated use QueryListRendererProps
*/
export interface IQueryListRendererProps<T> // Omit `createNewItem`, because it's used strictly for internal tracking.
extends Pick<IQueryListState<T>, "activeItem" | "filteredItems" | "query">,
Expand Down
4 changes: 2 additions & 2 deletions packages/select/src/components/select/select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import {
} from "@blueprintjs/core";

import { Classes, ListItemsProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

export type SelectProps<T> = ISelectProps<T>;
/** @deprecated use SelectProps */
Expand Down Expand Up @@ -156,7 +156,7 @@ export class Select<T> extends AbstractPureComponent2<SelectProps<T>, ISelectSta
}
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
// not using defaultProps cuz they're hard to type with generics (can't use <T> on static members)
const {
fill,
Expand Down
6 changes: 3 additions & 3 deletions packages/select/src/components/select/select2.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import {
import { Popover2, Popover2TargetProps, PopupKind } from "@blueprintjs/popover2";

import { Classes, ListItemsProps, SelectPopoverProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

export interface Select2Props<T> extends ListItemsProps<T>, SelectPopoverProps {
/**
Expand Down Expand Up @@ -151,7 +151,7 @@ export class Select2<T> extends AbstractPureComponent2<Select2Props<T>, Select2S
}
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
// not using defaultProps cuz they're hard to type with generics (can't use <T> on static members)
const {
filterable = true,
Expand Down Expand Up @@ -209,7 +209,7 @@ export class Select2<T> extends AbstractPureComponent2<Select2Props<T>, Select2S
// the "fill" prop. Note that we must take `isOpen` as an argument to force this render function to be called
// again after that state changes.
private getPopoverTargetRenderer =
(listProps: IQueryListRendererProps<T>, isOpen: boolean) =>
(listProps: QueryListRendererProps<T>, isOpen: boolean) =>
// N.B. pull out `isOpen` so that it's not forwarded to the DOM, but remember not to use it directly
// since it may be stale (`renderTarget` is not re-invoked on this.state changes).
// eslint-disable-next-line react/display-name
Expand Down
4 changes: 2 additions & 2 deletions packages/select/src/components/suggest/suggest.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import {
} from "@blueprintjs/core";

import { Classes, ListItemsProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

export type SuggestProps<T> = ISuggestProps<T>;
/** @deprecated use SuggestProps */
Expand Down Expand Up @@ -184,7 +184,7 @@ export class Suggest<T> extends AbstractPureComponent2<SuggestProps<T>, ISuggest
}
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
const { fill, inputProps = {}, popoverProps = {} } = this.props;
const { isOpen, selectedItem } = this.state;
const { handleKeyDown, handleKeyUp } = listProps;
Expand Down
6 changes: 3 additions & 3 deletions packages/select/src/components/suggest/suggest2.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import {
import { Popover2, Popover2TargetProps, PopupKind } from "@blueprintjs/popover2";

import { Classes, ListItemsProps, SelectPopoverProps } from "../../common";
import { IQueryListRendererProps, QueryList } from "../query-list/queryList";
import { QueryList, QueryListRendererProps } from "../query-list/queryList";

export interface Suggest2Props<T> extends ListItemsProps<T>, SelectPopoverProps {
/**
Expand Down Expand Up @@ -181,7 +181,7 @@ export class Suggest2<T> extends AbstractPureComponent2<Suggest2Props<T>, Sugges
}
}

private renderQueryList = (listProps: IQueryListRendererProps<T>) => {
private renderQueryList = (listProps: QueryListRendererProps<T>) => {
const { popoverContentProps = {}, popoverProps = {}, popoverRef } = this.props;
const { isOpen } = this.state;
const { handleKeyDown, handleKeyUp } = listProps;
Expand Down Expand Up @@ -216,7 +216,7 @@ export class Suggest2<T> extends AbstractPureComponent2<Suggest2Props<T>, Sugges
// the "fill" prop. Note that we must take `isOpen` as an argument to force this render function to be called
// again after that state changes.
private getPopoverTargetRenderer =
(listProps: IQueryListRendererProps<T>, isOpen: boolean) =>
(listProps: QueryListRendererProps<T>, isOpen: boolean) =>
// eslint-disable-next-line react/display-name
({
// pull out `isOpen` so that it's not forwarded to the DOM
Expand Down
16 changes: 8 additions & 8 deletions packages/select/test/queryListTests.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ import { Menu } from "@blueprintjs/core";

import { IFilm, renderFilm, TOP_100_FILMS } from "../../docs-app/src/common/films";
import {
IQueryListRendererProps,
IQueryListState,
ItemListPredicate,
ItemListRenderer,
ItemPredicate,
QueryList,
QueryListProps,
QueryListRendererProps,
} from "../src";

// this is an awkward import across the monorepo, but we'd rather not introduce a cyclical dependency or create another package
Expand All @@ -43,7 +43,7 @@ describe("<QueryList>", () => {
items: TOP_100_FILMS.slice(0, 20),
onActiveItemChange: sinon.spy(),
onItemSelect: sinon.spy(),
renderer: sinon.spy((props: IQueryListRendererProps<IFilm>) => <div>{props.itemList}</div>),
renderer: sinon.spy((props: QueryListRendererProps<IFilm>) => <div>{props.itemList}</div>),
};

beforeEach(() => {
Expand Down Expand Up @@ -80,7 +80,7 @@ describe("<QueryList>", () => {
shallow(<FilmQueryList {...testProps} itemPredicate={predicate} query="1994" />);

assert.equal(predicate.callCount, testProps.items.length, "called once per item");
const { filteredItems } = testProps.renderer.args[0][0] as IQueryListRendererProps<IFilm>;
const { filteredItems } = testProps.renderer.args[0][0] as QueryListRendererProps<IFilm>;
assert.lengthOf(filteredItems, 3, "returns only films from 1994");
});

Expand All @@ -89,7 +89,7 @@ describe("<QueryList>", () => {
shallow(<FilmQueryList {...testProps} itemListPredicate={predicate} query="1994" />);

assert.equal(predicate.callCount, 1, "called once for entire list");
const { filteredItems } = testProps.renderer.args[0][0] as IQueryListRendererProps<IFilm>;
const { filteredItems } = testProps.renderer.args[0][0] as QueryListRendererProps<IFilm>;
assert.lengthOf(filteredItems, 3, "returns only films from 1994");
});

Expand All @@ -111,7 +111,7 @@ describe("<QueryList>", () => {

it("omitting both predicate props is supported", () => {
shallow(<FilmQueryList {...testProps} query="1980" />);
const { filteredItems } = testProps.renderer.args[0][0] as IQueryListRendererProps<IFilm>;
const { filteredItems } = testProps.renderer.args[0][0] as QueryListRendererProps<IFilm>;
assert.lengthOf(filteredItems, testProps.items.length, "returns all films");
});

Expand Down Expand Up @@ -232,7 +232,7 @@ describe("<QueryList>", () => {
...testProps,
itemPredicate,
onItemsPaste,
renderer: sinon.spy((listItemsProps: IQueryListRendererProps<IFilm>) => {
renderer: sinon.spy((listItemsProps: QueryListRendererProps<IFilm>) => {
handlePaste = listItemsProps.handlePaste;
return testProps.renderer(listItemsProps);
}),
Expand Down Expand Up @@ -343,8 +343,8 @@ describe("<QueryList>", () => {
let triggerInputQueryChange: ((e: any) => void) | undefined;
const createNewItemFromQuerySpy = sinon.spy();
const createNewItemRendererSpy = sinon.spy();
// we must supply our own renderer so that we can hook into IQueryListRendererProps#handleQueryChange
const renderer = sinon.spy((props: IQueryListRendererProps<IFilm>) => {
// we must supply our own renderer so that we can hook into QueryListRendererProps#handleQueryChange
const renderer = sinon.spy((props: QueryListRendererProps<IFilm>) => {
triggerInputQueryChange = props.handleQueryChange;
return <div>{props.itemList}</div>;
});
Expand Down
2 changes: 2 additions & 0 deletions packages/table/src/headers/columnHeaderCell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ export interface IColumnHeaderCellProps extends IHeaderCellProps, IColumnNamePro
*/
menuIcon?: IconName | JSX.Element;
}
// eslint-disable-next-line deprecation/deprecation
export type ColumnHeaderCellProps = IColumnHeaderCellProps;

export interface IColumnHeaderCellState {
isActive?: boolean;
Expand Down
7 changes: 6 additions & 1 deletion packages/table/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,12 @@ export { ColumnHeaderRenderer, IColumnHeaderRenderer } from "./headers/columnHea

export { RowHeaderRenderer } from "./headers/rowHeader";

export { ColumnHeaderCell, IColumnHeaderCellProps, HorizontalCellDivider } from "./headers/columnHeaderCell";
export {
ColumnHeaderCell,
ColumnHeaderCellProps,
IColumnHeaderCellProps,
HorizontalCellDivider,
} from "./headers/columnHeaderCell";

export { ColumnHeaderCell2, ColumnHeaderCell2Props } from "./headers/columnHeaderCell2";

Expand Down