Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: calendly link on schedule a call click, jira and slack integration premium tag #38331

Merged
merged 5 commits into from
Dec 25, 2024

Conversation

AmanAgarwal041
Copy link
Contributor

@AmanAgarwal041 AmanAgarwal041 commented Dec 23, 2024

Description

This PR introduces the change to premium datasources views.

  • The premium datasources with premium/soon tag is moved to saas integrations sections
  • 2 new datasources are added -> slack and jira
  • Now on clicking on schedule a call, it not only fires an analytic event but also opens a calendly link to schedule a call

Fixes #38262
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.Datasource"

🔍 Cypress test results

Tip

🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/12481422641
Commit: 5c4b2a9
Cypress dashboard.
Tags: @tag.Datasource
Spec:


Tue, 24 Dec 2024 12:50:38 UTC

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

Summary by CodeRabbit

  • New Features

    • Added "Slack" and "Jira" to the premium integrations.
    • Introduced a new URL for scheduling calls.
    • Enhanced the NewApiScreen to accept child components.
  • Bug Fixes

    • Streamlined the handling of premium data sources within the integration components.
  • Chores

    • Removed child rendering from DatasourceHomeScreen for improved component structure.
    • Adjusted button layout in the PremiumDatasourceContactForm for better presentation.

@AmanAgarwal041 AmanAgarwal041 added the ok-to-test Required label for CI label Dec 23, 2024
Copy link
Contributor

coderabbitai bot commented Dec 23, 2024

Walkthrough

The pull request introduces modifications to several files in the Appsmith client application, focusing on premium datasources and integration management. The changes include adding Slack and Jira to premium integrations, updating component rendering logic for datasource screens, and implementing a schedule call functionality. The modifications aim to enhance the user experience around premium datasource integrations and provide a more streamlined approach to scheduling calls.

Changes

File Change Summary
app/client/src/constants/PremiumDatasourcesConstants.ts Added Slack and Jira to PREMIUM_INTEGRATIONS, introduced SCHEDULE_CALL_URL constant
app/client/src/pages/Editor/IntegrationEditor/CreateNewDatasourceTab.tsx Restructured premium datasources rendering logic between CreateNewDatasource and CreateNewSaasIntegration components
app/client/src/pages/Editor/IntegrationEditor/DatasourceHome.tsx Removed {this.props.children} rendering
app/client/src/pages/Editor/IntegrationEditor/NewApi.tsx Added optional children prop to ApiHomeScreenProps interface
app/client/src/pages/Editor/IntegrationEditor/NewQuery.tsx Removed children rendering for DataSourceHome component
app/client/src/utils/PremiumDatasourcesHelpers.ts Added logic to open schedule call URL based on email and business context
app/client/src/pages/Editor/IntegrationEditor/PremiumDatasources/ContactForm.tsx Adjusted button layout structure in PremiumDatasourceContactForm component

Assessment against linked issues

Objective Addressed Explanation
Add Slack and Jira to premium datasources
Open Calendly link directly
Add Calendly link for schedule call button

Possibly related PRs

Suggested Labels

Enhancement, User Testing

Suggested Reviewers

  • hetunandu
  • sagar-qa007

Poem

🚀 Integrations bloom like spring,
Slack and Jira take their wing,
Calendly calls with open arms,
Code dances with digital charms!
A symphony of connections sing 🎉


📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5304b60 and 5c4b2a9.

📒 Files selected for processing (1)
  • app/client/src/pages/Editor/IntegrationEditor/PremiumDatasources/ContactForm.tsx (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • app/client/src/pages/Editor/IntegrationEditor/PremiumDatasources/ContactForm.tsx

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added Datasources Issues related to configuring datasource on appsmith Integrations Pod General Issues related to the Integrations Pod that don't fit into other tags. Integrations Pod Integrations Product Issues related to a specific integration New Datasource Requests for new datasources Query & JS Pod Issues related to the query & JS Pod Task A simple Todo labels Dec 23, 2024
@AmanAgarwal041
Copy link
Contributor Author

/build-deploy-preview skip-tests=true

@github-actions github-actions bot added the Bug Something isn't working label Dec 23, 2024
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/12469561314.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 38331.
recreate: .

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
app/client/src/pages/Editor/IntegrationEditor/CreateNewDatasourceTab.tsx (1)

Line range hint 182-218: Premium datasources extraction.
Shifting the premium datasources logic to “CreateNewSaasIntegration” clarifies the architecture and appropriately keeps each component’s responsibility clear.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5855115 and 19d07d8.

📒 Files selected for processing (6)
  • app/client/src/constants/PremiumDatasourcesConstants.ts (1 hunks)
  • app/client/src/pages/Editor/IntegrationEditor/CreateNewDatasourceTab.tsx (3 hunks)
  • app/client/src/pages/Editor/IntegrationEditor/DatasourceHome.tsx (0 hunks)
  • app/client/src/pages/Editor/IntegrationEditor/NewApi.tsx (3 hunks)
  • app/client/src/pages/Editor/IntegrationEditor/NewQuery.tsx (1 hunks)
  • app/client/src/utils/PremiumDatasourcesHelpers.ts (2 hunks)
💤 Files with no reviewable changes (1)
  • app/client/src/pages/Editor/IntegrationEditor/DatasourceHome.tsx
🧰 Additional context used
📓 Learnings (1)
app/client/src/pages/Editor/IntegrationEditor/CreateNewDatasourceTab.tsx (1)
Learnt from: sneha122
PR: appsmithorg/appsmith#29377
File: app/client/src/pages/Editor/IntegrationEditor/CreateNewDatasourceTab.tsx:316-329
Timestamp: 2024-11-12T08:11:25.416Z
Learning: The user clarified that the feature being introduced is experimental and that automated tests will be added once the decision to keep the feature is made. This context is important for future reviews as it explains the absence of tests for certain features under development.
🔇 Additional comments (8)
app/client/src/pages/Editor/IntegrationEditor/NewQuery.tsx (1)

59-59: Confirm that removing children is intentional.

If the DataSourceHome component no longer needs child elements, this is fine. Otherwise, reintroducing the child rendering logic may be necessary to maintain expected functionality.

✅ Verification successful

Removing children prop is correct - component doesn't use it

Looking at the DatasourceHome component implementation, while it declares children in its props interface, the component doesn't render any children in its implementation. The component is designed to render a fixed layout of datasource cards.

🏁 Scripts executed

The following scripts were executed for the analysis:

Error: No shell scripts found


Script:

#!/bin/bash
# Let's first check the DataSourceHome component usage and its children in the file
ast-grep --pattern 'DataSourceHome' NewQuery.tsx

# Let's also check the component definition to understand its props and children handling
fd DataSourceHome --exec cat {}

Length of output: 144


Script:

#!/bin/bash
# Let's try to find the correct path first
fd -e tsx "NewQuery.tsx$"

# Then search for DataSourceHome component files
fd -e tsx -e ts "DataSourceHome"

# Also search for DataSourceHome usage across the codebase
rg "DataSourceHome" -t typescript -t tsx

Length of output: 195


Script:

#!/bin/bash
# Let's examine the NewQuery.tsx file content to understand the DataSourceHome usage
cat "app/client/src/pages/Editor/IntegrationEditor/NewQuery.tsx"

# Also search for DataSourceHome component with proper file extension
rg "DataSourceHome" --type-add 'ts:*.{ts,tsx}' -t ts

Length of output: 2088


Script:

#!/bin/bash
# Let's check the DatasourceHome component implementation
cat "app/client/src/pages/Editor/IntegrationEditor/DatasourceHome.tsx"

Length of output: 11863

app/client/src/constants/PremiumDatasourcesConstants.ts (2)

18-25: All good for Slack & Jira entries.
The newly added objects for Slack and Jira look correct, and the associated icon references also appear to be accurate.


31-32: Ensure URL correctness.
The Calendly URL is defined as a constant. Double-check that this link is correct and doesn't require dynamic parameters other than "email."

✅ Verification successful

Let me search for any related usage or configuration of this Calendly URL in the codebase.


URL implementation is correctly handled with dynamic email parameter

The Calendly URL is properly implemented in the codebase. The constant is used in PremiumDatasourcesHelpers.ts where it's dynamically appended with the email parameter when needed: `${SCHEDULE_CALL_URL}?email=${email}`. No other instances of Calendly URLs exist in the codebase, confirming this is the intended implementation.

🏁 Scripts executed

The following scripts were executed for the analysis:

Error: No shell scripts found


Script:

#!/bin/bash
# Search for any references to the Calendly URL or the constant
rg -i "calendly.com/carina-neves-fonseca" -A 2 -B 2

# Search for any usage of SCHEDULE_CALL_URL constant
rg "SCHEDULE_CALL_URL" -A 2 -B 2

# Look for any configuration files that might contain Calendly URLs
fd -e json -e yaml -e yml -e config -e env | xargs rg -i "calendly"

# Check if there are any other Calendly URLs defined in the codebase
rg -i "calendly.com" -A 2 -B 2

Length of output: 1796

app/client/src/utils/PremiumDatasourcesHelpers.ts (1)

62-70: Conditional scheduling flow is well-designed.
The code introduces a useful condition to open the Calendly link only when a valid email is provided and the user is not a business or enterprise user. This approach avoids unnecessary windows in other scenarios.

app/client/src/pages/Editor/IntegrationEditor/NewApi.tsx (2)

145-145: Using children for composability.
Allowing children to be passed here promotes flexible composition of nested UI elements, such as “PremiumDatasources.” This is a good move toward more modular design.


332-332: Rendering children in ApiCardsContainer.
Including the new children prop inside the container ensures that additional sections (like PremiumDatasources) can appear seamlessly within the layout. Great for reusability.

app/client/src/pages/Editor/IntegrationEditor/CreateNewDatasourceTab.tsx (2)

174-174: No issues detected here.
The updated reference to NewQueryScreen remains consistent.


347-347: Prop usage for premium datasources.
Noting that the new “isPremiumDatasourcesViewEnabled” prop is carried forward simplifies feature toggling. Good approach for progressive feature rollout.

Copy link

Deploy-Preview-URL: https://ce-38331.dp.appsmith.com

@AmanAgarwal041
Copy link
Contributor Author

/build-deploy-preview skip-tests=true

Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/12480590221.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 38331.
recreate: .

Copy link

Deploy-Preview-URL: https://ce-38331.dp.appsmith.com

@AmanAgarwal041
Copy link
Contributor Author

/build-deploy-preview skip-tests=true

Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/12481428723.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 38331.
recreate: .

Copy link

Deploy-Preview-URL: https://ce-38331.dp.appsmith.com

@AmanAgarwal041 AmanAgarwal041 merged commit 65391ab into release Dec 25, 2024
44 checks passed
@AmanAgarwal041 AmanAgarwal041 deleted the fix/38262-premium-ds branch December 25, 2024 06:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working Datasources Issues related to configuring datasource on appsmith Integrations Pod General Issues related to the Integrations Pod that don't fit into other tags. Integrations Pod Integrations Product Issues related to a specific integration New Datasource Requests for new datasources ok-to-test Required label for CI Query & JS Pod Issues related to the query & JS Pod Task A simple Todo
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Task]: Add calendly link for the schedule a call button in the Premium integration modal
2 participants