diff --git a/client/src/components/jobs-list/jobs-list.component.jsx b/client/src/components/jobs-list/jobs-list.component.jsx index 592144dbb..15bdc7d96 100644 --- a/client/src/components/jobs-list/jobs-list.component.jsx +++ b/client/src/components/jobs-list/jobs-list.component.jsx @@ -4,12 +4,14 @@ import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import PhoneFormatter from "../../utils/PhoneFormatter"; import { alphaSort } from "../../utils/sorters"; +import { withRouter } from "react-router-dom"; -export default function JobsList({ +export default withRouter(function JobsList({ loading, jobs, selectedJob, - setSelectedJob + setSelectedJob, + history }) { const [state, setState] = useState({ sortedInfo: {}, @@ -182,6 +184,7 @@ export default function JobsList({ if (record) { if (record.id) { setSelectedJob(record.id); + history.push(`#${record.id}`); return; } } @@ -222,4 +225,4 @@ export default function JobsList({ /> ); -} +}); diff --git a/client/src/graphql/apollo-error-handling.js b/client/src/graphql/apollo-error-handling.js index 617259f3d..322164f9a 100644 --- a/client/src/graphql/apollo-error-handling.js +++ b/client/src/graphql/apollo-error-handling.js @@ -9,10 +9,20 @@ const errorLink = onError( console.log("networkError", networkError); console.log("operation", operation); console.log("forward", forward); - if ( - graphQLErrors[0]?.message.includes("JWTExpired") || - networkError?.message.includes("JWTExpired") - ) { + + let expired = false; + + if (graphQLErrors) { + if (graphQLErrors[0].message.includes("JWTExpired")) { + expired = true; + } + } + if (networkError) { + if (networkError?.message.includes("JWTExpired")) { + expired = true; + } + } + if (expired) { //User access token has expired //props.history.push("/network-error"); console.log("We need a new token!"); diff --git a/client/src/pages/jobs/jobs.page.jsx b/client/src/pages/jobs/jobs.page.jsx index 857b22623..ee640a0e6 100644 --- a/client/src/pages/jobs/jobs.page.jsx +++ b/client/src/pages/jobs/jobs.page.jsx @@ -8,7 +8,7 @@ import JobsList from "../../components/jobs-list/jobs-list.component"; import JobDetailCards from "../../components/job-detail-cards/job-detail-cards.component"; //TODO: Implement pagination for this. -export default function JobsPage() { +export default function JobsPage({ match, location }) { const { loading, error, data } = useSubscription(SUBSCRIPTION_ALL_OPEN_JOBS, { fetchPolicy: "network-only" }); @@ -18,9 +18,11 @@ export default function JobsPage() { document.title = t("titles.jobs"); }, [t]); - const [selectedJob, setSelectedJob] = useState(null); + const { hash } = location; + const [selectedJob, setSelectedJob] = useState(hash ? hash.substr(1) : null); + console.log("Jobs Page Render."); - if (error) return ; + if (error) return ; return (