mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
react-instantsearch: fix typing of connectCurrentRefinements (#47193)
This commit is contained in:
parent
cec3116164
commit
7e6e8a9284
26
types/react-instantsearch-core/index.d.ts
vendored
26
types/react-instantsearch-core/index.d.ts
vendored
@ -131,7 +131,7 @@ export type ConnectorProvided<TProvided> = TProvided & {
|
||||
*/
|
||||
export function createConnector<TProvided = {}, TExposed = {}>(
|
||||
connectorDesc: ConnectorDescription<TProvided, TExposed>
|
||||
): ((stateless: React.StatelessComponent<ConnectorProvided<TProvided>>) => React.ComponentClass<TExposed>) &
|
||||
): ((stateless: React.FunctionComponent<ConnectorProvided<TProvided>>) => React.ComponentClass<TExposed>) &
|
||||
(<TProps extends Partial<ConnectorProvided<TProvided>>>(
|
||||
Composed: React.ComponentType<TProps>
|
||||
) => ConnectedComponentClass<TProps, ConnectorProvided<TProvided>, TExposed>);
|
||||
@ -185,7 +185,7 @@ export interface AutocompleteExposed {
|
||||
}
|
||||
|
||||
// tslint:disable-next-line:no-unnecessary-generics
|
||||
export function connectAutoComplete<TDoc = BasicDoc>(stateless: React.StatelessComponent<AutocompleteProvided<TDoc>>): React.ComponentClass<AutocompleteExposed>;
|
||||
export function connectAutoComplete<TDoc = BasicDoc>(stateless: React.FunctionComponent<AutocompleteProvided<TDoc>>): React.ComponentClass<AutocompleteExposed>;
|
||||
export function connectAutoComplete<Props extends AutocompleteProvided<TDoc>, TDoc = BasicDoc>(
|
||||
Composed: React.ComponentType<Props>
|
||||
): ConnectedComponentClass<Props, AutocompleteProvided<TDoc>, AutocompleteExposed>;
|
||||
@ -224,7 +224,7 @@ export interface CurrentRefinementsExposed {
|
||||
|
||||
export interface CurrentRefinementsProvided {
|
||||
/** a function to remove a single filter */
|
||||
refine: (refinement: RefinementValue | RefinementValue[]) => void;
|
||||
refine: (refinement: RefinementValue | RefinementValue[] | Refinement[]) => void;
|
||||
/**
|
||||
* all the filters, the value is to pass to the refine function for removing all currentrefinements,
|
||||
* label is for the display. When existing several refinements for the same atribute name, then you
|
||||
@ -237,7 +237,7 @@ export interface CurrentRefinementsProvided {
|
||||
}
|
||||
|
||||
export function connectCurrentRefinements(
|
||||
stateless: React.StatelessComponent<CurrentRefinementsProvided>
|
||||
stateless: React.FunctionComponent<CurrentRefinementsProvided>
|
||||
): React.ComponentClass<CurrentRefinementsExposed>;
|
||||
export function connectCurrentRefinements<TProps extends Partial<CurrentRefinementsProvided>>(
|
||||
Composed: React.ComponentType<TProps>
|
||||
@ -273,7 +273,7 @@ export interface GeoSearchProvided<THit = any> {
|
||||
* https://community.algolia.com/react-instantsearch/connectors/connectGeoSearch.html
|
||||
*/
|
||||
export function connectGeoSearch(
|
||||
stateless: React.StatelessComponent<GeoSearchProvided>
|
||||
stateless: React.FunctionComponent<GeoSearchProvided>
|
||||
): React.ComponentClass<GeoSearchExposed>;
|
||||
export function connectGeoSearch<TProps extends Partial<GeoSearchProvided<THit>>, THit>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
@ -319,7 +319,7 @@ export type HighlightProps<TDoc = any> = HighlightProvided<TDoc> & HighlightPass
|
||||
* connectHighlight connector provides the logic to create an highlighter component that will retrieve, parse and render an highlighted attribute from an Algolia hit.
|
||||
*/
|
||||
export function connectHighlight<TDoc = any>(
|
||||
stateless: React.StatelessComponent<HighlightProps<TDoc>>
|
||||
stateless: React.FunctionComponent<HighlightProps<TDoc>>
|
||||
): React.ComponentClass<HighlightPassedThru<TDoc>>;
|
||||
export function connectHighlight<TProps extends Partial<HighlightProps<TDoc>>, TDoc>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
@ -338,7 +338,7 @@ export interface HitsProvided<THit> {
|
||||
* https://community.algolia.com/react-instantsearch/connectors/connectHits.html
|
||||
*/
|
||||
// tslint:disable-next-line:no-unnecessary-generics
|
||||
export function connectHits<THit = BasicDoc>(stateless: React.StatelessComponent<HitsProvided<THit>>): React.ComponentClass;
|
||||
export function connectHits<THit = BasicDoc>(stateless: React.FunctionComponent<HitsProvided<THit>>): React.ComponentClass;
|
||||
export function connectHits<TProps extends HitsProvided<THit>, THit>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
): ConnectedComponentClass<TProps, HitsProvided<THit>>;
|
||||
@ -388,7 +388,7 @@ export interface MenuExposed {
|
||||
*
|
||||
* https://community.algolia.com/react-instantsearch/connectors/connectMenu.html
|
||||
*/
|
||||
export function connectMenu(stateless: React.StatelessComponent<MenuProvided>): React.ComponentClass<MenuExposed>;
|
||||
export function connectMenu(stateless: React.FunctionComponent<MenuProvided>): React.ComponentClass<MenuExposed>;
|
||||
export function connectMenu<TProps extends Partial<MenuProvided>>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
): ConnectedComponentClass<TProps, MenuProvided, MenuExposed>;
|
||||
@ -429,7 +429,7 @@ export interface NumericMenuExposed {
|
||||
* https://community.algolia.com/react-instantsearch/connectors/connectNumericMenu.html
|
||||
*/
|
||||
export function connectNumericMenu(
|
||||
stateless: React.StatelessComponent<NumericMenuProvided>
|
||||
stateless: React.FunctionComponent<NumericMenuProvided>
|
||||
): React.ComponentClass<NumericMenuExposed>;
|
||||
export function connectNumericMenu<TProps extends Partial<NumericMenuProvided>>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
@ -487,7 +487,7 @@ export interface RefinementListExposed {
|
||||
* https://community.algolia.com/react-instantsearch/connectors/connectRefinementList.html
|
||||
*/
|
||||
export function connectRefinementList(
|
||||
stateless: React.StatelessComponent<RefinementListProvided>
|
||||
stateless: React.FunctionComponent<RefinementListProvided>
|
||||
): React.ComponentClass<RefinementListExposed>;
|
||||
export function connectRefinementList<TProps extends Partial<RefinementListProvided>>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
@ -508,7 +508,7 @@ export interface SearchBoxExposed {
|
||||
defaultRefinement?: string;
|
||||
}
|
||||
export function connectSearchBox(
|
||||
stateless: React.StatelessComponent<SearchBoxProvided>
|
||||
stateless: React.FunctionComponent<SearchBoxProvided>
|
||||
): React.ComponentClass<SearchBoxExposed>;
|
||||
export function connectSearchBox<TProps extends Partial<SearchBoxProvided>>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
@ -542,7 +542,7 @@ export interface StateResultsProvided<TDoc = BasicDoc> {
|
||||
*
|
||||
* https://community.algolia.com/react-instantsearch/connectors/connectStateResults.html
|
||||
*/
|
||||
export function connectStateResults(stateless: React.StatelessComponent<StateResultsProvided>): React.ComponentClass;
|
||||
export function connectStateResults(stateless: React.FunctionComponent<StateResultsProvided>): React.ComponentClass;
|
||||
export function connectStateResults<TProps extends Partial<StateResultsProvided<any>>>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
): ConnectedComponentClass<TProps, StateResultsProvided>;
|
||||
@ -552,7 +552,7 @@ interface StatsProvided {
|
||||
processingTimeMS: number;
|
||||
}
|
||||
|
||||
export function connectStats(stateless: React.StatelessComponent<StatsProvided>): React.ComponentClass;
|
||||
export function connectStats(stateless: React.FunctionComponent<StatsProvided>): React.ComponentClass;
|
||||
export function connectStats<TProps extends Partial<StatsProvided>>(
|
||||
ctor: React.ComponentType<TProps>
|
||||
): ConnectedComponentClass<TProps, StatsProvided>;
|
||||
|
||||
@ -300,6 +300,18 @@ import {
|
||||
<ConnectedCurrentRefinements clearsQuery={true} transformItems={item => item} />;
|
||||
};
|
||||
|
||||
() => {
|
||||
const MyClearRefinements = ({ refine, items }: CurrentRefinementsProvided) => (
|
||||
<button onClick={() => refine(items)}>
|
||||
clear all
|
||||
</button>
|
||||
);
|
||||
|
||||
const ConnectedClearRefinements = connectCurrentRefinements(MyClearRefinements);
|
||||
|
||||
<ConnectedClearRefinements clearsQuery={true} transformItems={item => item} />;
|
||||
};
|
||||
|
||||
() => {
|
||||
function renderRefinement(label: string, value: Refinement['value'], refine: CurrentRefinementsProvided['refine']) {
|
||||
return (
|
||||
|
||||
Loading…
Reference in New Issue
Block a user