Redirect user from call page when not in call
When a user tries to access a call page while not in a call, redirect the user to the home page.
Misc changes:
- Add route state to the call route that includes the CallStatus.
- CallProvider redirects to home if the callStatus isn't set (meaning
the user isn't in a call).
- Remove `beginCall` function in `ConversationProvider`. Added `useStartCall` hook that redirects the user to the call page. The `CallProvider` automatically sends the `BeginCall` message when the user reaches the page for the first time.
- Reorder functions in CallProvider to have `useEffect` functions at the top
GitLab: #164
Change-Id: I6cec1b9f31cb308d92a69112f5b38d1bdf79e05f
diff --git a/client/src/hooks/useUrlParams.ts b/client/src/hooks/useUrlParams.ts
index f21b60b..243a8c5 100644
--- a/client/src/hooks/useUrlParams.ts
+++ b/client/src/hooks/useUrlParams.ts
@@ -18,13 +18,14 @@
import { useMemo } from 'react';
import { useLocation, useParams } from 'react-router-dom';
-export type RouteParams<U = Record<string, string>, Q = Record<string, string>> = {
- urlParams: U;
- queryParams: Q;
+export type RouteParams<UrlParams = Record<string, string>, QueryParams = Record<string, string>, State = any> = {
+ urlParams: UrlParams;
+ queryParams: QueryParams;
+ state?: State;
};
export const useUrlParams = <T extends RouteParams>() => {
- const { search } = useLocation();
+ const { search, state } = useLocation();
const urlParams = useParams() as T['urlParams'];
return useMemo(() => {
@@ -32,6 +33,7 @@
return {
queryParams,
urlParams,
+ state: state as T['state'],
};
- }, [search, urlParams]);
+ }, [search, urlParams, state]);
};