mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 04:40:32 +00:00
fix: one click demo
This commit is contained in:
@@ -16,7 +16,7 @@ import {
|
||||
/**
|
||||
* Saves the response data to cookies.
|
||||
*/
|
||||
function setAuthLoginCookies(data) {
|
||||
export function setAuthLoginCookies(data) {
|
||||
setCookie('token', data.token);
|
||||
setCookie('authenticated_user_id', data.user.id);
|
||||
setCookie('organization_id', data.tenant.organization_id);
|
||||
|
||||
@@ -6,9 +6,22 @@ import {
|
||||
useQueryClient,
|
||||
} from 'react-query';
|
||||
import useApiRequest from '../useRequest';
|
||||
import {
|
||||
useSetAuthToken,
|
||||
useSetAuthUserId,
|
||||
useSetLocale,
|
||||
useSetOrganizationId,
|
||||
useSetTenantId,
|
||||
} from '../state';
|
||||
import { setAuthLoginCookies } from './authentication';
|
||||
import { batch } from 'react-redux';
|
||||
|
||||
interface CreateOneClickDemoValues {}
|
||||
interface CreateOneClickDemoRes {}
|
||||
interface CreateOneClickDemoRes {
|
||||
email: string;
|
||||
signedIn: any;
|
||||
buildJob: any;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -33,3 +46,54 @@ export function useCreateOneClickDemo(
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
interface OneClickSigninDemoValues {
|
||||
demoId: string;
|
||||
}
|
||||
interface OneClickSigninDemoRes {}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {UseMutationOptions<OneClickSigninDemoRes, Error, OneClickSigninDemoValues>} props
|
||||
* @returns {UseMutationResult<OneClickSigninDemoRes, Error, OneClickSigninDemoValues>}
|
||||
*/
|
||||
export function useOneClickDemoSignin(
|
||||
props?: UseMutationOptions<
|
||||
OneClickSigninDemoRes,
|
||||
Error,
|
||||
OneClickSigninDemoValues
|
||||
>,
|
||||
): UseMutationResult<OneClickSigninDemoRes, Error, OneClickSigninDemoValues> {
|
||||
const queryClient = useQueryClient();
|
||||
const apiRequest = useApiRequest();
|
||||
|
||||
const setAuthToken = useSetAuthToken();
|
||||
const setOrganizationId = useSetOrganizationId();
|
||||
const setUserId = useSetAuthUserId();
|
||||
const setTenantId = useSetTenantId();
|
||||
const setLocale = useSetLocale();
|
||||
|
||||
return useMutation<OneClickSigninDemoRes, Error, OneClickSigninDemoValues>(
|
||||
({ demoId }) =>
|
||||
apiRequest.post(`/demo/one_click_signin`, { demo_id: demoId }),
|
||||
{
|
||||
onSuccess: (res, id) => {
|
||||
// Set authentication cookies.
|
||||
setAuthLoginCookies(res.data);
|
||||
|
||||
batch(() => {
|
||||
// Sets the auth metadata to global state.
|
||||
setAuthToken(res.data.token);
|
||||
setOrganizationId(res.data.tenant.organization_id);
|
||||
setUserId(res.data.user.id);
|
||||
setTenantId(res.data.tenant.id);
|
||||
|
||||
if (res.data?.tenant?.metadata?.language) {
|
||||
setLocale(res.data?.tenant?.metadata?.language);
|
||||
}
|
||||
});
|
||||
},
|
||||
...props,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user