**Before:** Only last 5 days where displayed on Developers Settings Webhook Usage Graph.  **Now** Added component where you can select the time range where you want to view the webhook usage. To do better the styling and content depassing . <img width="652" alt="Screenshot 2024-10-15 at 16 56 45" src="https://github.com/user-attachments/assets/d06e7f4c-a689-49a0-8839-f015ce36bab9"> **In order to test** 1. Set ANALYTICS_ENABLED to true 2. Set TINYBIRD_TOKEN to your token from the workspace twenty_analytics_playground 3. Write your client tinybird token in SettingsDeveloppersWebhookDetail.tsx in line 93 4. Create a Webhook in twenty and set wich events it needs to track 5. Run twenty-worker in order to make the webhooks work. 6. Do your tasks in order to populate the data 7. Enter to settings> webhook>your webhook and the statistics section should be displayed. 8. Select the desired time range in the dropdown **To do list** - Tooltip is truncated when accessing values at the right end of the graph - DateTicks needs to follow a more clear standard - Update this PR with more representative images
94 lines
3.6 KiB
TypeScript
94 lines
3.6 KiB
TypeScript
import { apiConfigState } from '@/client-config/states/apiConfigState';
|
|
import { authProvidersState } from '@/client-config/states/authProvidersState';
|
|
import { billingState } from '@/client-config/states/billingState';
|
|
import { captchaProviderState } from '@/client-config/states/captchaProviderState';
|
|
import { chromeExtensionIdState } from '@/client-config/states/chromeExtensionIdState';
|
|
import { isAnalyticsEnabledState } from '@/client-config/states/isAnalyticsEnabledState';
|
|
import { isClientConfigLoadedState } from '@/client-config/states/isClientConfigLoadedState';
|
|
import { isDebugModeState } from '@/client-config/states/isDebugModeState';
|
|
import { isSignInPrefilledState } from '@/client-config/states/isSignInPrefilledState';
|
|
import { isSignUpDisabledState } from '@/client-config/states/isSignUpDisabledState';
|
|
import { sentryConfigState } from '@/client-config/states/sentryConfigState';
|
|
import { supportChatState } from '@/client-config/states/supportChatState';
|
|
import { useEffect } from 'react';
|
|
import { useRecoilState, useSetRecoilState } from 'recoil';
|
|
import { useGetClientConfigQuery } from '~/generated/graphql';
|
|
import { isDefined } from '~/utils/isDefined';
|
|
|
|
export const ClientConfigProviderEffect = () => {
|
|
const setAuthProviders = useSetRecoilState(authProvidersState);
|
|
const setIsDebugMode = useSetRecoilState(isDebugModeState);
|
|
const setIsAnalyticsEnabled = useSetRecoilState(isAnalyticsEnabledState);
|
|
|
|
const setIsSignInPrefilled = useSetRecoilState(isSignInPrefilledState);
|
|
const setIsSignUpDisabled = useSetRecoilState(isSignUpDisabledState);
|
|
|
|
const setBilling = useSetRecoilState(billingState);
|
|
const setSupportChat = useSetRecoilState(supportChatState);
|
|
|
|
const setSentryConfig = useSetRecoilState(sentryConfigState);
|
|
const [isClientConfigLoaded, setIsClientConfigLoaded] = useRecoilState(
|
|
isClientConfigLoadedState,
|
|
);
|
|
|
|
const setCaptchaProvider = useSetRecoilState(captchaProviderState);
|
|
|
|
const setChromeExtensionId = useSetRecoilState(chromeExtensionIdState);
|
|
|
|
const setApiConfig = useSetRecoilState(apiConfigState);
|
|
|
|
const { data, loading } = useGetClientConfigQuery({
|
|
skip: isClientConfigLoaded,
|
|
});
|
|
|
|
useEffect(() => {
|
|
if (!loading && isDefined(data?.clientConfig)) {
|
|
setIsClientConfigLoaded(true);
|
|
setAuthProviders({
|
|
google: data?.clientConfig.authProviders.google,
|
|
microsoft: data?.clientConfig.authProviders.microsoft,
|
|
password: data?.clientConfig.authProviders.password,
|
|
magicLink: false,
|
|
});
|
|
setIsDebugMode(data?.clientConfig.debugMode);
|
|
setIsAnalyticsEnabled(data?.clientConfig.analyticsEnabled);
|
|
setIsSignInPrefilled(data?.clientConfig.signInPrefilled);
|
|
setIsSignUpDisabled(data?.clientConfig.signUpDisabled);
|
|
|
|
setBilling(data?.clientConfig.billing);
|
|
setSupportChat(data?.clientConfig.support);
|
|
|
|
setSentryConfig({
|
|
dsn: data?.clientConfig?.sentry?.dsn,
|
|
release: data?.clientConfig?.sentry?.release,
|
|
environment: data?.clientConfig?.sentry?.environment,
|
|
});
|
|
|
|
setCaptchaProvider({
|
|
provider: data?.clientConfig?.captcha?.provider,
|
|
siteKey: data?.clientConfig?.captcha?.siteKey,
|
|
});
|
|
|
|
setChromeExtensionId(data?.clientConfig?.chromeExtensionId);
|
|
setApiConfig(data?.clientConfig?.api);
|
|
}
|
|
}, [
|
|
data,
|
|
setAuthProviders,
|
|
setIsDebugMode,
|
|
setIsSignInPrefilled,
|
|
setIsSignUpDisabled,
|
|
setSupportChat,
|
|
setBilling,
|
|
setSentryConfig,
|
|
loading,
|
|
setIsClientConfigLoaded,
|
|
setCaptchaProvider,
|
|
setChromeExtensionId,
|
|
setApiConfig,
|
|
setIsAnalyticsEnabled,
|
|
]);
|
|
|
|
return <></>;
|
|
};
|