PromucFlow_constructor/app/client/src/pages/setup/SignupSuccess.tsx
Diljit ed17ee0376
chore: ce - remove sentry performance tracker (#35710)
## Description
Fix the following errors

### POST https://o296332.ingest.sentry.io/api/1546547/envelope/... 429
(Too Many Requests)

We have an integration with Sentry to instrument page loads and other
transactions. This is no longer used. All page load metrics are
collected using a new relic integration.
The sentry transactions api was throwing a 429 error when we exceed our
trial quota. Removing the integration should curb this error.

<img width="1181" alt="Screenshot 2024-08-15 at 1 22 28 PM"
src="https://github.com/user-attachments/assets/543c0ec1-e87f-4439-b715-e75b3a6fd3ed">

[Slack thread
](https://theappsmith.slack.com/archives/CGBPVEJ5C/p1723699775838509)for
more context on our sentry sub exceeding its quota.

### TypeError: e.className.split is not a function at t.value
(PageLoadInstrumentation.ts:112:33)

Add a type check for string.


Fixes #`Issue Number`  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/10400625143>
> Commit: fc83198b613a973c9a02644fc742947a92bfbd3c
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10400625143&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Thu, 15 Aug 2024 08:45:49 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Removed performance tracking functionality across various components
and sagas, simplifying the codebase and reducing overhead.
- **Bug Fixes**
- No specific bug fixes were made; improvements focus on performance
tracking removal.
- **Chores**
- Eliminated unnecessary dependencies related to performance metrics,
streamlining the application's dependency management.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-08-15 19:40:53 +05:30

84 lines
2.9 KiB
TypeScript

import { ReduxActionTypes } from "ee/constants/ReduxActionConstants";
import { requiresAuth } from "pages/UserAuth/requiresAuthHOC";
import React from "react";
import { useCallback } from "react";
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { getCurrentUser } from "selectors/usersSelectors";
import UserWelcomeScreen from "pages/setup/UserWelcomeScreen";
import { Center } from "pages/setup/common";
import { Spinner } from "@appsmith/ads";
import { isValidLicense } from "ee/selectors/tenantSelectors";
import { redirectUserAfterSignup } from "ee/utils/signupHelpers";
import { setUserSignedUpFlag } from "utils/storage";
import AnalyticsUtil from "ee/utils/AnalyticsUtil";
export function SignupSuccess() {
const dispatch = useDispatch();
const urlObject = new URL(window.location.href);
const redirectUrl = urlObject?.searchParams.get("redirectUrl") ?? "";
const shouldEnableFirstTimeUserOnboarding = urlObject?.searchParams.get(
"enableFirstTimeUserExperience",
);
const validLicense = useSelector(isValidLicense);
const user = useSelector(getCurrentUser);
useEffect(() => {
user?.email && setUserSignedUpFlag(user?.email);
}, []);
const isNonInvitedUser = shouldEnableFirstTimeUserOnboarding === "true";
const redirectUsingQueryParam = useCallback(
() =>
redirectUserAfterSignup(
redirectUrl,
shouldEnableFirstTimeUserOnboarding,
validLicense,
dispatch,
isNonInvitedUser,
),
[],
);
const onGetStarted = useCallback((proficiency?: string, useCase?: string) => {
dispatch({
type: ReduxActionTypes.UPDATE_USER_DETAILS_INIT,
payload: {
proficiency,
useCase,
},
});
AnalyticsUtil.logEvent("GET_STARTED_CLICKED", {
proficiency,
goal: useCase,
});
redirectUsingQueryParam();
}, []);
/*
* Proceed with redirection,
* For a super user, since we already collected role and useCase during signup
* For a normal user, who has filled in their role and useCase and try to visit signup-success url by entering manually.
* For an invited user, we don't want to collect the data. we just want to redirect to the workspace they have been invited to.
* We identify an invited user based on `enableFirstTimeUserExperience` flag in url.
*/
//TODO(Balaji): Factor in case, where user had closed the tab, while filling the form.And logs back in again.
if (
user?.isSuperUser ||
((user?.role || user?.proficiency) && user?.useCase) ||
shouldEnableFirstTimeUserOnboarding !== "true"
) {
redirectUsingQueryParam();
// Showing a loader until the redirect
return (
<Center>
<Spinner size="lg" />
</Center>
);
}
return <UserWelcomeScreen isSuperUser={false} onGetStarted={onGetStarted} />;
}
export default requiresAuth(SignupSuccess);