Skip to content

Commit e93b05f

Browse files
[PRMT-257] Remove reload of Lloyd George between fullscreen change (#647)
1 parent 59cf8bf commit e93b05f

File tree

3 files changed

+17
-36
lines changed

3 files changed

+17
-36
lines changed

app/src/components/blocks/_lloydGeorge/lloydGeorgeViewRecordStage/LloydGeorgeViewRecordStage.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Dispatch, SetStateAction } from 'react';
1+
import { Dispatch, SetStateAction, useEffect, useRef } from 'react';
22
import { Button, ChevronLeftIcon } from 'nhsuk-react-components';
33
import { DOWNLOAD_STAGE } from '../../../../types/generic/downloadStage';
44
import LloydGeorgeRecordDetails from '../lloydGeorgeRecordDetails/LloydGeorgeRecordDetails';
@@ -72,6 +72,19 @@ function LloydGeorgeViewRecordStage({
7272
const pageHeader = 'Available records';
7373
useTitle({ pageTitle: pageHeader });
7474

75+
const mounted = useRef(false);
76+
77+
useEffect(() => {
78+
const onPageLoad = async () => {
79+
resetDocState();
80+
refreshRecord();
81+
};
82+
if (!mounted.current) {
83+
onPageLoad();
84+
mounted.current = true;
85+
}
86+
}, [refreshRecord, resetDocState]);
87+
7588
const menuClass = showMenu ? '--menu' : '--upload';
7689

7790
return (
@@ -142,9 +155,7 @@ function LloydGeorgeViewRecordStage({
142155
fullScreenHandler={setFullScreen}
143156
detailsElement={<RecordDetails {...recordDetailsProps} />}
144157
isFullScreen={session.isFullscreen!}
145-
refreshRecord={refreshRecord}
146-
pdfObjectUrl={pdfObjectUrl}
147-
resetDocStage={resetDocState}
158+
pdfObjectUrl={hasRecordInStorage ? pdfObjectUrl : ''}
148159
recordLinks={recordLinksToShow}
149160
setStage={setStage}
150161
showMenu={showMenu}
@@ -157,9 +168,7 @@ function LloydGeorgeViewRecordStage({
157168
fullScreenHandler={setFullScreen}
158169
detailsElement={<RecordDetails {...recordDetailsProps} />}
159170
isFullScreen={session.isFullscreen!}
160-
refreshRecord={refreshRecord}
161-
pdfObjectUrl={pdfObjectUrl}
162-
resetDocStage={resetDocState}
171+
pdfObjectUrl={hasRecordInStorage ? pdfObjectUrl : ''}
163172
/>
164173
)}
165174
</div>

app/src/components/generic/recordCard/RecordCard.test.tsx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ describe('RecordCard Component', () => {
3838
fullScreenHandler: mockFullScreenHandler,
3939
detailsElement: <div>Mock Details Element</div>,
4040
isFullScreen: false,
41-
refreshRecord: vi.fn(),
4241
pdfObjectUrl: 'https://test.com',
43-
resetDocStage: vi.fn(),
4442
};
4543

4644
beforeEach(() => {
@@ -61,14 +59,6 @@ describe('RecordCard Component', () => {
6159
expect(screen.getByText('Mock Details Element')).toBeInTheDocument();
6260
});
6361

64-
it('calls refreshRecord on mount', async () => {
65-
const mockRefreshRecord = vi.fn();
66-
render(<RecordCard {...props} refreshRecord={mockRefreshRecord} />);
67-
await waitFor(() => {
68-
expect(mockRefreshRecord).toHaveBeenCalledTimes(1);
69-
});
70-
});
71-
7262
it('renders the "View in full screen" button when recordUrl is set', async () => {
7363
mockGetLloydGeorgeRecord.mockResolvedValue(buildLgSearchResult());
7464

app/src/components/generic/recordCard/RecordCard.tsx

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Card } from 'nhsuk-react-components';
2-
import { Dispatch, ReactNode, SetStateAction, useEffect, useRef } from 'react';
2+
import { Dispatch, ReactNode, SetStateAction } from 'react';
33
import PdfViewer from '../pdfViewer/PdfViewer';
44
import { LGRecordActionLink } from '../../../types/blocks/lloydGeorgeActions';
55
import { LG_RECORD_STAGE } from '../../../types/blocks/lloydGeorgeStages';
@@ -10,9 +10,7 @@ export type Props = {
1010
fullScreenHandler: (clicked: true) => void;
1111
detailsElement: ReactNode;
1212
isFullScreen: boolean;
13-
refreshRecord: () => void;
1413
pdfObjectUrl: string;
15-
resetDocStage: () => void;
1614
recordLinks?: Array<LGRecordActionLink>;
1715
setStage?: Dispatch<SetStateAction<LG_RECORD_STAGE>>;
1816
showMenu?: boolean;
@@ -24,25 +22,10 @@ function RecordCard({
2422
detailsElement,
2523
isFullScreen,
2624
pdfObjectUrl,
27-
refreshRecord,
28-
resetDocStage,
2925
recordLinks = [],
3026
setStage = () => {},
3127
showMenu = false,
3228
}: Props) {
33-
const mounted = useRef(false);
34-
35-
useEffect(() => {
36-
const onPageLoad = async () => {
37-
resetDocStage();
38-
await refreshRecord();
39-
};
40-
if (!mounted.current) {
41-
onPageLoad();
42-
mounted.current = true;
43-
}
44-
}, [refreshRecord, resetDocStage]);
45-
4629
const Record = () => {
4730
return pdfObjectUrl ? <PdfViewer fileUrl={pdfObjectUrl} /> : null;
4831
};
@@ -75,7 +58,6 @@ function RecordCard({
7558
data-testid="full-screen-btn"
7659
onClick={() => {
7760
fullScreenHandler(true);
78-
resetDocStage();
7961
}}
8062
>
8163
View in full screen

0 commit comments

Comments
 (0)