feat: Add WebSocket functionality and integrate call features in the chat component

This commit is contained in:
Marco Beretta 2024-12-21 14:36:01 +01:00 committed by Danny Avila
parent 6b90817ae0
commit d5bc8d3869
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
21 changed files with 460 additions and 20 deletions

View file

@ -239,3 +239,5 @@ export const addTagToConversation = (conversationId: string) =>
export const userTerms = () => '/api/user/terms';
export const acceptUserTerms = () => '/api/user/terms/accept';
export const banner = () => '/api/banner';
export const websocket = () => '/api/websocket';

View file

@ -780,3 +780,7 @@ export function acceptTerms(): Promise<t.TAcceptTermsResponse> {
export function getBanner(): Promise<t.TBannerResponse> {
return request.get(endpoints.banner());
}
export function getWebsocketUrl(): Promise<t.TWebsocketUrlResponse> {
return request.get(endpoints.websocket());
}

View file

@ -46,6 +46,7 @@ export enum QueryKeys {
health = 'health',
userTerms = 'userTerms',
banner = 'banner',
websocketUrl = 'websocketUrl',
}
export enum MutationKeys {

View file

@ -376,3 +376,14 @@ export const useGetCustomConfigSpeechQuery = (
},
);
};
export const useGetWebsocketUrlQuery = (
config?: UseQueryOptions<t.TWebsocketUrlResponse>,
): QueryObserverResult<t.TWebsocketUrlResponse> => {
return useQuery<t.TWebsocketUrlResponse>([QueryKeys.websocketUrl], () => dataService.getWebsocketUrl(), {
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
...config,
});
};

View file

@ -482,3 +482,7 @@ export type TRealtimeEphemeralTokenResponse = {
token: string;
url: string;
};
export type TWebsocketUrlResponse = {
url: string;
};