Skip to content
Snippets Groups Projects
Commit 199116fd authored by Tadeusz Miesiąc's avatar Tadeusz Miesiąc
Browse files

feat(search drawer headings): fixed heading naming in steps

parent 2f3b7212
No related branches found
No related tags found
2 merge requests!223reset the pin numbers before search results are fetch (so the results will be...,!70feat(search drawer headings): fixed heading naming in steps
Pipeline #82470 failed
...@@ -3,13 +3,13 @@ import { bioEnititiesResultListSelector } from '@/redux/drawer/drawer.selectors' ...@@ -3,13 +3,13 @@ import { bioEnititiesResultListSelector } from '@/redux/drawer/drawer.selectors'
import { DrawerHeadingBackwardButton } from '@/shared/DrawerHeadingBackwardButton'; import { DrawerHeadingBackwardButton } from '@/shared/DrawerHeadingBackwardButton';
import { useAppDispatch } from '@/redux/hooks/useAppDispatch'; import { useAppDispatch } from '@/redux/hooks/useAppDispatch';
import { displayGroupedSearchResults } from '@/redux/drawer/drawer.slice'; import { displayGroupedSearchResults } from '@/redux/drawer/drawer.slice';
import { searchValueSelector } from '@/redux/search/search.selectors'; import { currentModelNameSelector } from '@/redux/models/models.selectors';
import { BioEntitiesPinsList } from './BioEntitiesPinsList'; import { BioEntitiesPinsList } from './BioEntitiesPinsList';
export const BioEntitiesResultsList = (): JSX.Element => { export const BioEntitiesResultsList = (): JSX.Element => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const bioEntityData = useAppSelector(bioEnititiesResultListSelector); const bioEntityData = useAppSelector(bioEnititiesResultListSelector);
const searchValue = useAppSelector(searchValueSelector); const mapName = useAppSelector(currentModelNameSelector);
const navigateToGroupedSearchResults = (): void => { const navigateToGroupedSearchResults = (): void => {
dispatch(displayGroupedSearchResults()); dispatch(displayGroupedSearchResults());
...@@ -17,11 +17,9 @@ export const BioEntitiesResultsList = (): JSX.Element => { ...@@ -17,11 +17,9 @@ export const BioEntitiesResultsList = (): JSX.Element => {
return ( return (
<div> <div>
<DrawerHeadingBackwardButton <DrawerHeadingBackwardButton backwardFunction={navigateToGroupedSearchResults}>
title="BioEntity" {mapName}
value={searchValue} </DrawerHeadingBackwardButton>
backwardFunction={navigateToGroupedSearchResults}
/>
<BioEntitiesPinsList bioEnititesPins={bioEntityData} /> <BioEntitiesPinsList bioEnititesPins={bioEntityData} />
</div> </div>
); );
......
...@@ -59,8 +59,8 @@ describe('ResultsList - component ', () => { ...@@ -59,8 +59,8 @@ describe('ResultsList - component ', () => {
it('should render results and navigation panel', () => { it('should render results and navigation panel', () => {
renderComponent(INITIAL_STATE); renderComponent(INITIAL_STATE);
expect(screen.getByText('drugs:')).toBeInTheDocument(); const headingText = screen.getByTestId('drawer-heading-text');
expect(screen.getByText('aspirin')).toBeInTheDocument(); expect(headingText.textContent).toBe('drugs');
const fristDrugName = drugsFixture[0].targets[0].name; const fristDrugName = drugsFixture[0].targets[0].name;
const secondDrugName = drugsFixture[0].targets[1].name; const secondDrugName = drugsFixture[0].targets[1].name;
......
...@@ -3,14 +3,12 @@ import { resultListSelector, stepTypeDrawerSelector } from '@/redux/drawer/drawe ...@@ -3,14 +3,12 @@ import { resultListSelector, stepTypeDrawerSelector } from '@/redux/drawer/drawe
import { DrawerHeadingBackwardButton } from '@/shared/DrawerHeadingBackwardButton'; import { DrawerHeadingBackwardButton } from '@/shared/DrawerHeadingBackwardButton';
import { useAppDispatch } from '@/redux/hooks/useAppDispatch'; import { useAppDispatch } from '@/redux/hooks/useAppDispatch';
import { displayGroupedSearchResults } from '@/redux/drawer/drawer.slice'; import { displayGroupedSearchResults } from '@/redux/drawer/drawer.slice';
import { searchValueSelector } from '@/redux/search/search.selectors';
import { PinsList } from './PinsList'; import { PinsList } from './PinsList';
export const ResultsList = (): JSX.Element => { export const ResultsList = (): JSX.Element => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const data = useAppSelector(resultListSelector); const data = useAppSelector(resultListSelector);
const stepType = useAppSelector(stepTypeDrawerSelector); const stepType = useAppSelector(stepTypeDrawerSelector);
const searchValue = useAppSelector(searchValueSelector);
const navigateToGroupedSearchResults = (): void => { const navigateToGroupedSearchResults = (): void => {
dispatch(displayGroupedSearchResults()); dispatch(displayGroupedSearchResults());
...@@ -18,11 +16,11 @@ export const ResultsList = (): JSX.Element => { ...@@ -18,11 +16,11 @@ export const ResultsList = (): JSX.Element => {
return ( return (
<div> <div>
<DrawerHeadingBackwardButton <DrawerHeadingBackwardButton backwardFunction={navigateToGroupedSearchResults}>
title={stepType} <span className="capitalize" data-testid="drawer-heading-text">
value={searchValue} {stepType}
backwardFunction={navigateToGroupedSearchResults} </span>
/> </DrawerHeadingBackwardButton>
{data && <PinsList pinsList={data} type={stepType} />} {data && <PinsList pinsList={data} type={stepType} />}
</div> </div>
); );
......
...@@ -17,6 +17,12 @@ export const currentModelIdSelector = createSelector( ...@@ -17,6 +17,12 @@ export const currentModelIdSelector = createSelector(
currentModelSelector, currentModelSelector,
model => model?.idObject || MODEL_ID_DEFAULT, model => model?.idObject || MODEL_ID_DEFAULT,
); );
export const currentModelNameSelector = createSelector(
currentModelSelector,
model => model?.name || '',
);
export const modelByIdSelector = createSelector( export const modelByIdSelector = createSelector(
[modelsSelector, (_state, modelId: number): number => modelId], [modelsSelector, (_state, modelId: number): number => modelId],
(models, modelId) => (models?.data || []).find(({ idObject }) => idObject === modelId), (models, modelId) => (models?.data || []).find(({ idObject }) => idObject === modelId),
......
...@@ -10,8 +10,7 @@ import { DrawerHeadingBackwardButton } from './DrawerHeadingBackwardButton.compo ...@@ -10,8 +10,7 @@ import { DrawerHeadingBackwardButton } from './DrawerHeadingBackwardButton.compo
const backwardFunction = jest.fn(); const backwardFunction = jest.fn();
const renderComponent = ( const renderComponent = (
title: string, children: React.ReactNode,
value: string[],
initialStoreState: InitialStoreState = {}, initialStoreState: InitialStoreState = {},
): { store: StoreType } => { ): { store: StoreType } => {
const { Wrapper, store } = getReduxWrapperWithStore(initialStoreState); const { Wrapper, store } = getReduxWrapperWithStore(initialStoreState);
...@@ -19,11 +18,9 @@ const renderComponent = ( ...@@ -19,11 +18,9 @@ const renderComponent = (
return ( return (
render( render(
<Wrapper> <Wrapper>
<DrawerHeadingBackwardButton <DrawerHeadingBackwardButton backwardFunction={backwardFunction}>
title={title} {children}
value={value} </DrawerHeadingBackwardButton>
backwardFunction={backwardFunction}
/>
</Wrapper>, </Wrapper>,
), ),
{ {
...@@ -38,16 +35,15 @@ describe('DrawerHeadingBackwardButton - component', () => { ...@@ -38,16 +35,15 @@ describe('DrawerHeadingBackwardButton - component', () => {
}); });
it('should render passed values', () => { it('should render passed values', () => {
renderComponent('Title', ['value']); renderComponent('Title');
expect(screen.getByRole('back-button')).toBeInTheDocument(); expect(screen.getByRole('back-button')).toBeInTheDocument();
expect(screen.getByText('Title:')).toBeInTheDocument(); expect(screen.getByText('Title')).toBeInTheDocument();
expect(screen.getByText('value')).toBeInTheDocument();
expect(screen.getByRole('close-drawer-button')).toBeInTheDocument(); expect(screen.getByRole('close-drawer-button')).toBeInTheDocument();
}); });
it('should call backward function on back button click', () => { it('should call backward function on back button click', () => {
renderComponent('Title', ['value']); renderComponent('Title');
const backButton = screen.getByRole('back-button'); const backButton = screen.getByRole('back-button');
backButton.click(); backButton.click();
...@@ -56,7 +52,7 @@ describe('DrawerHeadingBackwardButton - component', () => { ...@@ -56,7 +52,7 @@ describe('DrawerHeadingBackwardButton - component', () => {
}); });
it('should call class drawer on close button click', () => { it('should call class drawer on close button click', () => {
const { store } = renderComponent('Title', ['value'], { const { store } = renderComponent('Title', {
drawer: { drawer: {
...drawerSearchStepOneFixture, ...drawerSearchStepOneFixture,
}, },
......
...@@ -4,15 +4,13 @@ import { IconButton } from '@/shared/IconButton'; ...@@ -4,15 +4,13 @@ import { IconButton } from '@/shared/IconButton';
import { BACK_BUTTON_ROLE, CLOSE_BUTTON_ROLE } from './DrawerHeadingBackwardButton.constants'; import { BACK_BUTTON_ROLE, CLOSE_BUTTON_ROLE } from './DrawerHeadingBackwardButton.constants';
export interface DrawerHeadingBackwardButtonProps { export interface DrawerHeadingBackwardButtonProps {
title: string;
value: string[];
backwardFunction: () => void; backwardFunction: () => void;
children: React.ReactNode;
} }
export const DrawerHeadingBackwardButton = ({ export const DrawerHeadingBackwardButton = ({
backwardFunction, backwardFunction,
title, children,
value,
}: DrawerHeadingBackwardButtonProps): JSX.Element => { }: DrawerHeadingBackwardButtonProps): JSX.Element => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
...@@ -35,8 +33,7 @@ export const DrawerHeadingBackwardButton = ({ ...@@ -35,8 +33,7 @@ export const DrawerHeadingBackwardButton = ({
role={BACK_BUTTON_ROLE} role={BACK_BUTTON_ROLE}
/> />
<div className="ml-2 py-8 text-xl"> <div className="ml-2 py-8 text-xl">
<span className="font-normal">{title}: </span> <span className="font-semibold">{children}</span>
<span className="font-semibold">{value}</span>
</div> </div>
</div> </div>
<IconButton <IconButton
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment