Skip to content
Open
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
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Change history for ui-linked-data

## 3.0.0 (IN PROGRESS)
* Fix Reset search option is missing after using Advanced Search. Fixes [UILD-812].

[UILD-792]:https://folio-org.atlassian.net/browse/UILD-812

## 2.0.2 (2026-05-07)
* Fix Sonar issues. Refs [UILD-792].
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { setInitialGlobalState } from '@/test/__mocks__/store';

import { MemoryRouter } from 'react-router-dom';

import { fireEvent, render, screen } from '@testing-library/react';

import { useSearchStore } from '@/store';
Expand Down Expand Up @@ -30,7 +32,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

expect(screen.getByTestId('id-search-reset-button')).toBeInTheDocument();
expect(screen.getByText('ld.reset')).toBeInTheDocument();
Expand All @@ -46,7 +52,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

expect(screen.getByTestId('x-in-circle-icon')).toBeInTheDocument();
});
Expand All @@ -61,7 +71,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
expect(button).not.toBeDisabled();
Expand All @@ -77,7 +91,51 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
expect(button).toBeDisabled();
});

test('button is enabled when advanced search is active', () => {
setInitialGlobalState([
{
store: useSearchStore,
state: {
query: '',
},
},
]);

render(
<MemoryRouter initialEntries={['/?query=title+adj+value']}>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
expect(button).not.toBeDisabled();
});

test('button is disabled when query is empty and no advanced search is active', () => {
setInitialGlobalState([
{
store: useSearchStore,
state: {
query: '',
},
},
]);

render(
<MemoryRouter initialEntries={['/?query=some+query&searchBy=title']}>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
expect(button).toBeDisabled();
Expand All @@ -93,7 +151,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
fireEvent.click(button);
Expand All @@ -111,7 +173,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
fireEvent.click(button);
Expand All @@ -129,7 +195,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
expect(button).toHaveClass('search-button');
Expand All @@ -145,7 +215,11 @@ describe('ResetButton', () => {
},
]);

render(<ResetButton />);
render(
<MemoryRouter>
<ResetButton />
</MemoryRouter>,
);

const button = screen.getByTestId('id-search-reset-button');
expect(button).toHaveAttribute('aria-label');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import { FC } from 'react';
import { FormattedMessage, useIntl } from 'react-intl';
import { useSearchParams } from 'react-router-dom';

import { Button, ButtonType } from '@/components/Button';

import { SearchParam } from '@/features/search/core';

import { useSearchState } from '@/store';

import XInCircle from '@/assets/x-in-circle.svg?react';
Expand All @@ -11,10 +14,12 @@ import { useSearchContext } from '../../providers/SearchProvider';

export const ResetButton: FC = () => {
const { formatMessage } = useIntl();
const [searchParams] = useSearchParams();
const { onReset } = useSearchContext();
const { query } = useSearchState(['query']);

const isDisabled = !query;
const isAdvancedSearch = !!searchParams.get(SearchParam.QUERY) && !searchParams.get(SearchParam.SEARCH_BY);
const isDisabled = !query && !isAdvancedSearch;

return (
<Button
Expand Down
Loading