mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-23 23:48:56 +01:00
Get user config in the new web client from the new user config APIs
This commit is contained in:
parent
a6339bb973
commit
88007d7552
1 changed files with 54 additions and 6 deletions
|
@ -11,15 +11,63 @@ export interface UserProfile {
|
|||
detail: string;
|
||||
}
|
||||
|
||||
const userFetcher = () => window.fetch('/api/v1/user').then(res => res.json()).catch(err => console.log(err));
|
||||
const fetcher = (url: string) =>
|
||||
window.fetch(url)
|
||||
.then(res => res.json())
|
||||
.catch(err => console.warn(err));
|
||||
|
||||
export function useAuthenticatedData() {
|
||||
const { data, error } = useSWR<UserProfile>('/api/v1/user', fetcher, { revalidateOnFocus: false });
|
||||
|
||||
const { data, error } = useSWR<UserProfile>('/api/v1/user', userFetcher, { revalidateOnFocus: false });
|
||||
|
||||
if (error) return null;
|
||||
if (!data) return null;
|
||||
if (data.detail === 'Forbidden') return null;
|
||||
if (error || !data || data.detail === 'Forbidden') return null;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
export interface ModelOptions {
|
||||
id: number;
|
||||
name: string;
|
||||
}
|
||||
export interface SyncedContent {
|
||||
computer: boolean;
|
||||
github: boolean;
|
||||
notion: boolean;
|
||||
}
|
||||
export interface UserConfig {
|
||||
username: string | null;
|
||||
user_photo: string | null;
|
||||
is_active: boolean;
|
||||
has_documents: boolean;
|
||||
khoj_version: string;
|
||||
enabled_content_source: SyncedContent;
|
||||
anonymous_mode: boolean;
|
||||
given_name: string;
|
||||
search_model_options: ModelOptions[];
|
||||
selected_search_model_config: number;
|
||||
chat_model_options: ModelOptions[];
|
||||
selected_chat_model_config: number;
|
||||
paint_model_options: ModelOptions[];
|
||||
selected_paint_model_config: number;
|
||||
billing_enabled: boolean;
|
||||
subscription_state: string;
|
||||
subscription_renewal_date: string;
|
||||
khoj_cloud_subscription_url: string | undefined;
|
||||
is_twilio_enabled: boolean;
|
||||
is_eleven_labs_enabled: boolean;
|
||||
voice_model_options: ModelOptions[];
|
||||
selected_voice_config: number;
|
||||
phone_number: string;
|
||||
is_phone_number_verified: boolean;
|
||||
notion_oauth_url: string;
|
||||
detail: string;
|
||||
}
|
||||
|
||||
|
||||
export function useUserConfig(detailed: boolean = false) {
|
||||
const url = `/api/settings?detailed=${detailed}`;
|
||||
const { data, error } = useSWR<UserConfig>(url, fetcher, { revalidateOnFocus: false });
|
||||
|
||||
if (error || !data || data.detail === 'Forbidden') return null;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue