Files
twenty/packages/twenty-front/src/modules/debug/components/RecoilDebugObserver.tsx
Antoine Moreaux b7473371b3 fix(client-config): set isLoaded to false on API status update (#12371)
Attempt at #12289 (edit Félix: removed fix keyword since I don't think
it fixes it)

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
Co-authored-by: Félix Malfait <felix@twenty.com>
2025-05-30 14:44:31 +02:00

41 lines
966 B
TypeScript

import { useRecoilTransactionObserver_UNSTABLE } from 'recoil';
import { logDebug } from '~/utils/logDebug';
const formatTitle = (stateName: string) => {
const headerCss = [
'color: gray; font-weight: lighter',
'color: black; font-weight: bold;',
];
const parts = ['%c recoil', `%c${stateName}`];
return [parts.join(' '), ...headerCss];
};
export const RecoilDebugObserverEffect = () => {
const isDebugMode = process.env.IS_DEBUG_MODE === 'true';
useRecoilTransactionObserver_UNSTABLE(({ snapshot }) => {
if (!isDebugMode) {
return;
}
for (const node of Array.from(
snapshot.getNodes_UNSTABLE({ isModified: true }),
)) {
const loadable = snapshot.getLoadable(node);
const titleArgs = formatTitle(node.key);
console.groupCollapsed(...titleArgs);
logDebug('STATE', loadable.state);
logDebug('CONTENTS', loadable.contents);
console.groupEnd();
}
});
return null;
};