7fd89678b7
# Introduction Avoid having multiple `isDefined` definition across our pacakges Also avoid importing `isDefined` from `twenty-ui` which exposes a huge barrel for a such little util function ## In a nutshell Removed own `isDefined.ts` definition from `twenty-ui` `twenty-front` and `twenty-server` to move it to `twenty-shared`. Updated imports for each packages, and added explicit dependencies to `twenty-shared` if not already in place Related PR https://github.com/twentyhq/twenty/pull/9941
45 lines
1.8 KiB
TypeScript
45 lines
1.8 KiB
TypeScript
import { workspacePublicDataState } from '@/auth/states/workspacePublicDataState';
|
|
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
|
import { useIsCurrentLocationOnDefaultDomain } from '@/domain-manager/hooks/useIsCurrentLocationOnDefaultDomain';
|
|
import { useRedirectToDefaultDomain } from '@/domain-manager/hooks/useRedirectToDefaultDomain';
|
|
import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState';
|
|
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
|
import { isDefined } from 'twenty-shared';
|
|
import { useGetPublicWorkspaceDataBySubdomainQuery } from '~/generated/graphql';
|
|
|
|
export const useGetPublicWorkspaceDataBySubdomain = () => {
|
|
const { isDefaultDomain } = useIsCurrentLocationOnDefaultDomain();
|
|
const isMultiWorkspaceEnabled = useRecoilValue(isMultiWorkspaceEnabledState);
|
|
const setWorkspaceAuthProviders = useSetRecoilState(
|
|
workspaceAuthProvidersState,
|
|
);
|
|
const workspacePublicData = useRecoilValue(workspacePublicDataState);
|
|
const { redirectToDefaultDomain } = useRedirectToDefaultDomain();
|
|
const setWorkspacePublicDataState = useSetRecoilState(
|
|
workspacePublicDataState,
|
|
);
|
|
|
|
const { loading, data, error } = useGetPublicWorkspaceDataBySubdomainQuery({
|
|
skip:
|
|
(isMultiWorkspaceEnabled && isDefaultDomain) ||
|
|
isDefined(workspacePublicData),
|
|
onCompleted: (data) => {
|
|
setWorkspaceAuthProviders(
|
|
data.getPublicWorkspaceDataBySubdomain.authProviders,
|
|
);
|
|
setWorkspacePublicDataState(data.getPublicWorkspaceDataBySubdomain);
|
|
},
|
|
onError: (error) => {
|
|
// eslint-disable-next-line no-console
|
|
console.error(error);
|
|
redirectToDefaultDomain();
|
|
},
|
|
});
|
|
|
|
return {
|
|
loading,
|
|
data: data?.getPublicWorkspaceDataBySubdomain,
|
|
error,
|
|
};
|
|
};
|