# 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
29 lines
836 B
TypeScript
29 lines
836 B
TypeScript
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
|
import { useEffect } from 'react';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { isDefined } from 'twenty-shared';
|
|
import { useGetHostnameDetailsQuery } from '~/generated/graphql';
|
|
|
|
export const SettingsHostnameEffect = () => {
|
|
const { refetch } = useGetHostnameDetailsQuery();
|
|
|
|
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
|
|
|
useEffect(() => {
|
|
let pollIntervalFn: null | ReturnType<typeof setInterval> = null;
|
|
if (isDefined(currentWorkspace?.hostname)) {
|
|
pollIntervalFn = setInterval(async () => {
|
|
refetch();
|
|
}, 3000);
|
|
}
|
|
|
|
return () => {
|
|
if (isDefined(pollIntervalFn)) {
|
|
clearInterval(pollIntervalFn);
|
|
}
|
|
};
|
|
}, [currentWorkspace?.hostname, refetch]);
|
|
|
|
return <></>;
|
|
};
|