From 732e3d9055db756be4d5d2670b88918efc184577 Mon Sep 17 00:00:00 2001 From: Yousef Moazzam Date: Fri, 4 Sep 2026 15:53:20 +0100 Subject: [PATCH 1/4] Add minimal handling if account is null --- frontend/unified/src/App.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/unified/src/App.tsx b/frontend/unified/src/App.tsx index ad36268..0647e11 100644 --- a/frontend/unified/src/App.tsx +++ b/frontend/unified/src/App.tsx @@ -93,9 +93,12 @@ export const App: React.FC = () => { if (data === undefined) { return

Data undefined

; } + if (data.account === null) { + return

Account null

; + } const instrumentSession = - data.account?.instrumentSessionRoles.edges[0].node.instrumentSession; + data.account.instrumentSessionRoles.edges[0].node.instrumentSession; const handleChangeTechnique = ( /** From ba2183395bbeb8bb0cac3d89d1b1d86d81958bda Mon Sep 17 00:00:00 2001 From: Yousef Moazzam Date: Fri, 4 Sep 2026 15:54:18 +0100 Subject: [PATCH 2/4] Use instrument session type from query response type --- .../src/components/SessionSelector.tsx | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/frontend/unified/src/components/SessionSelector.tsx b/frontend/unified/src/components/SessionSelector.tsx index ca1b689..de1fe39 100644 --- a/frontend/unified/src/components/SessionSelector.tsx +++ b/frontend/unified/src/components/SessionSelector.tsx @@ -14,23 +14,10 @@ enum SessionSelectionMode { Custom = "Custom", } -type Proposal = { - proposalNumber: number; - proposalCategory: string; -}; - -type Instrument = { - name: string; -}; - -export type InstrumentSession = { - instrumentSessionNumber: number; - proposal: Proposal; - instrument: Instrument; -}; - type SessionSelectorProps = { - session: InstrumentSession; + session: NonNullable< + SessionQueryQuery["account"] + >["instrumentSessionRoles"]["edges"][0]["node"]["instrumentSession"]; }; export const SessionSelector: React.FC = ({ From d022d22569b0e3e9490f343bcdb5e433d071e373 Mon Sep 17 00:00:00 2001 From: Yousef Moazzam Date: Fri, 4 Sep 2026 15:56:55 +0100 Subject: [PATCH 3/4] Remove unnecessary uses of question mark operator --- frontend/unified/src/App.tsx | 6 +++--- frontend/unified/src/components/SessionSelector.tsx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/unified/src/App.tsx b/frontend/unified/src/App.tsx index 0647e11..251b74e 100644 --- a/frontend/unified/src/App.tsx +++ b/frontend/unified/src/App.tsx @@ -203,9 +203,9 @@ export const App: React.FC = () => { // a capitalised "proposal code", whereas the workflows service only accepts // it in lowercase proposalCode: - instrumentSession?.proposal.proposalCategory.toLowerCase(), - proposalNumber: instrumentSession?.proposal.proposalNumber, - number: instrumentSession?.instrumentSessionNumber, + instrumentSession.proposal.proposalCategory.toLowerCase(), + proposalNumber: instrumentSession.proposal.proposalNumber, + number: instrumentSession.instrumentSessionNumber, }} /> diff --git a/frontend/unified/src/components/SessionSelector.tsx b/frontend/unified/src/components/SessionSelector.tsx index de1fe39..848f4f9 100644 --- a/frontend/unified/src/components/SessionSelector.tsx +++ b/frontend/unified/src/components/SessionSelector.tsx @@ -29,7 +29,7 @@ export const SessionSelector: React.FC = ({ const [textInputValue, setTextInputValue] = useState(""); const proposal = session?.proposal; - const latestSession = `${proposal?.proposalCategory?.toLowerCase()}${proposal?.proposalNumber}-${session?.instrumentSessionNumber}`; + const latestSession = `${proposal.proposalCategory?.toLowerCase()}${proposal.proposalNumber}-${session.instrumentSessionNumber}`; return ( From f8cee5996284de681dd728fd5b8978ff7349624b Mon Sep 17 00:00:00 2001 From: Yousef Moazzam Date: Fri, 4 Sep 2026 16:03:01 +0100 Subject: [PATCH 4/4] Add helper type for non-null account --- frontend/unified/src/components/SessionSelector.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/unified/src/components/SessionSelector.tsx b/frontend/unified/src/components/SessionSelector.tsx index 848f4f9..d3e8be3 100644 --- a/frontend/unified/src/components/SessionSelector.tsx +++ b/frontend/unified/src/components/SessionSelector.tsx @@ -14,10 +14,10 @@ enum SessionSelectionMode { Custom = "Custom", } +type NonNullAccount = NonNullable; + type SessionSelectorProps = { - session: NonNullable< - SessionQueryQuery["account"] - >["instrumentSessionRoles"]["edges"][0]["node"]["instrumentSession"]; + session: NonNullAccount["instrumentSessionRoles"]["edges"][0]["node"]["instrumentSession"]; }; export const SessionSelector: React.FC = ({