fix(docsearch): remove recent search when favorited
This commit is contained in:
parent
708b470cc1
commit
858a49820f
4 changed files with 22 additions and 19 deletions
|
|
@ -57,6 +57,7 @@ export function EmptyScreen(props: EmptyScreenProps) {
|
|||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
props.favoriteSearches.add(item);
|
||||
props.recentSearches.remove(item);
|
||||
props.refresh();
|
||||
}}
|
||||
>
|
||||
|
|
@ -91,18 +92,20 @@ export function EmptyScreen(props: EmptyScreenProps) {
|
|||
</div>
|
||||
)}
|
||||
renderAction={({ item }) => (
|
||||
<button
|
||||
className="DocSearch-Hit-action-button"
|
||||
title="Remove this search from favorite"
|
||||
onClick={event => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
props.favoriteSearches.remove(item);
|
||||
props.refresh();
|
||||
}}
|
||||
>
|
||||
<ResetIcon />
|
||||
</button>
|
||||
<div className="DocSearch-Hit-action">
|
||||
<button
|
||||
className="DocSearch-Hit-action-button"
|
||||
title="Remove this search from favorite"
|
||||
onClick={event => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
props.favoriteSearches.remove(item);
|
||||
props.refresh();
|
||||
}}
|
||||
>
|
||||
<ResetIcon />
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import {
|
|||
|
||||
import { InternalDocSearchHit } from './types';
|
||||
|
||||
interface NoResultsProps
|
||||
interface NoResultsScreenProps
|
||||
extends AutocompleteApi<
|
||||
InternalDocSearchHit,
|
||||
React.FormEvent,
|
||||
|
|
@ -17,7 +17,7 @@ interface NoResultsProps
|
|||
inputRef: React.MutableRefObject<null | HTMLInputElement>;
|
||||
}
|
||||
|
||||
export function NoResultsScreen(props: NoResultsProps) {
|
||||
export function NoResultsScreen(props: NoResultsScreenProps) {
|
||||
return (
|
||||
<div className="DocSearch-NoResults">
|
||||
<p className="DocSearch-Title">
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import { InternalDocSearchHit } from './types';
|
|||
import { Results } from './Results';
|
||||
import { SourceIcon, SelectIcon } from './icons';
|
||||
|
||||
interface ResultsProps
|
||||
interface ResultsScreenProps
|
||||
extends AutocompleteApi<
|
||||
InternalDocSearchHit,
|
||||
React.FormEvent,
|
||||
|
|
@ -19,7 +19,7 @@ interface ResultsProps
|
|||
onItemClick(item: InternalDocSearchHit): void;
|
||||
}
|
||||
|
||||
export function ResultsScreen(props: ResultsProps) {
|
||||
export function ResultsScreen(props: ResultsScreenProps) {
|
||||
return (
|
||||
<div className="DocSearch-Dropdown-Container">
|
||||
{props.state.suggestions.map((suggestion, index) => {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import { ResultsScreen } from './ResultsScreen';
|
|||
import { NoResultsScreen } from './NoResultsScreen';
|
||||
import { ErrorScreen } from './ErrorScreen';
|
||||
|
||||
interface DropdownProps<TItem>
|
||||
interface ScreenStateProps<TItem>
|
||||
extends AutocompleteApi<
|
||||
TItem,
|
||||
React.FormEvent,
|
||||
|
|
@ -25,7 +25,7 @@ interface DropdownProps<TItem>
|
|||
inputRef: React.MutableRefObject<null | HTMLInputElement>;
|
||||
}
|
||||
|
||||
export function ScreenState(props: DropdownProps<InternalDocSearchHit>) {
|
||||
export function ScreenState(props: ScreenStateProps<InternalDocSearchHit>) {
|
||||
if (props.state.status === 'error') {
|
||||
return <ErrorScreen />;
|
||||
}
|
||||
|
|
@ -37,7 +37,7 @@ export function ScreenState(props: DropdownProps<InternalDocSearchHit>) {
|
|||
if (!props.state.query) {
|
||||
return (
|
||||
<EmptyScreen
|
||||
{...(props as DropdownProps<any>)}
|
||||
{...(props as ScreenStateProps<any>)}
|
||||
hasSuggestions={hasSuggestions}
|
||||
/>
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue