@atlaskit/global-search
Version:
A cross-product search component (batteries included)
66 lines (65 loc) • 2.46 kB
TypeScript
import * as React from 'react';
import { ScreenCounter } from '../../util/ScreenCounter';
import { ReferralContextIdentifiers } from '../GlobalQuickSearchWrapper';
import { ResultsGroup } from '../../model/Result';
import { Scope } from '../../api/types';
import { CancelableEvent } from '../../../../quick-search';
import { FilterWithMetadata } from '../../api/CrossProductSearchClient';
export interface Props {
isPreQuery: boolean;
query: string;
isError: boolean;
isLoading: boolean;
renderNoResult: () => JSX.Element;
renderNoRecentActivity: () => JSX.Element;
renderBeforePreQueryState?: () => JSX.Element;
retrySearch(): void;
searchMore: undefined | ((scope: Scope) => void);
getPreQueryGroups: () => ResultsGroup[];
getPostQueryGroups: () => ResultsGroup[];
renderAdvancedSearchGroup: (analyticsData?: any) => JSX.Element;
keepPreQueryState: boolean;
searchSessionId: string;
preQueryScreenCounter?: ScreenCounter;
postQueryScreenCounter?: ScreenCounter;
referralContextIdentifiers?: ReferralContextIdentifiers;
onSearchMoreAdvancedSearchClicked?: (event: CancelableEvent) => void;
getFilterComponent(props: FilterComponentProps): React.ReactNode;
currentFilters: FilterWithMetadata[];
onFilterChanged(filter: FilterWithMetadata[]): void;
}
export interface FilterComponentProps {
latestSearchQuery: string;
searchResultsTotalSize: number;
isLoading: boolean;
searchSessionId: string;
currentFilters: FilterWithMetadata[];
onFilterChanged(filter: FilterWithMetadata[]): void;
}
export declare enum SearchResultsState {
PreQueryLoading = 0,
PreQueryResults = 1,
PreQueryNoResults = 2,
PostQueryResults = 3,
PostQueryNoResults = 4,
IntermediateResults = 5,
IntermediateNoResults = 6
}
interface SearchResultStateQuery {
isPreQuery: boolean;
isLoading: boolean;
hasResults: boolean;
}
export declare const getSearchResultState: ({ isPreQuery, isLoading, hasResults, }: SearchResultStateQuery) => SearchResultsState;
export default class SearchResults extends React.Component<Props> {
static defaultProps: {
getFilterComponent: () => null;
};
shouldComponentUpdate(nextProps: Props): boolean;
hasNoResult(): boolean;
renderNoResult(): JSX.Element;
renderPreQueryState(): JSX.Element;
renderSearchResultsState(): JSX.Element;
render(): JSX.Element | null;
}
export {};