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

chore: Clearing email field after waitlisting the user email #481

Merged
merged 1 commit into from
Oct 9, 2024

Conversation

bansal-harsh-2504
Copy link
Contributor

@bansal-harsh-2504 bansal-harsh-2504 commented Oct 7, 2024

User description

Description

Now if the user email gets waitlisted then the email field will be cleared for better user experience.

Related to #474

Mentions

@rajdip-b

Developer's checklist

  • My PR follows the style guidelines of this project
  • I have performed a self-check on my work

If changes are made in the code:

Documentation Update

  • No documentation changes are required.

PR Type

enhancement


Description

  • Fixed a typo in the error message displayed when the email field is empty.
  • Enhanced user experience by clearing the email input field after the email is successfully waitlisted.

Changes walkthrough 📝

Relevant files
Enhancement
index.tsx
Improve user experience by clearing email field post-waitlisting

apps/web/src/components/hero/index.tsx

  • Fixed a typo in the error message for empty email input.
  • Added functionality to clear the email field after successful
    waitlisting.
  • +3/-1     

    💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

    Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Error Handling
    The catch block for the fetch request only logs the error to the console. Consider implementing proper error handling and user feedback.

    User Feedback
    After clearing the email field on successful waitlisting, consider providing a success message to the user for better UX.

    Copy link
    Contributor

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    Enhancement
    Enhance user feedback by displaying success and error messages after waitlist submission attempts

    Consider adding a success message to inform the user that their email has been
    successfully added to the waitlist.

    apps/web/src/components/hero/index.tsx [38-47]

     try {
       await fetch(`${url}&EMAIL=${email}`, {
         mode: 'no-cors'
       })
       setEmail('');
    -
    +  toast.success('Successfully added to the waitlist!');
     } catch (error) {
    -  // eslint-disable-next-line no-console -- chill
    -  console.error(error)
    +  console.error('Failed to add email to waitlist:', error)
    +  toast.error('Failed to add email to waitlist. Please try again.');
     }
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: Adding user feedback through success and error messages significantly improves the user experience by providing clear communication about the outcome of their actions. This enhancement is valuable for usability.

    8
    Best practice
    Use a more descriptive variable name for the API endpoint URL to improve code readability and maintainability

    Consider using a more descriptive variable name for the API endpoint URL, such as
    waitlistApiUrl or emailSubmissionUrl, instead of the generic url.

    apps/web/src/components/hero/index.tsx [39-41]

    -await fetch(`${url}&EMAIL=${email}`, {
    +await fetch(`${waitlistApiUrl}&EMAIL=${email}`, {
       mode: 'no-cors'
     })
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: The suggestion to use a more descriptive variable name for the API endpoint URL enhances code readability and maintainability, making it clearer what the variable represents. This is a good practice, although it does not address a critical issue.

    7
    Possible issue
    Improve error handling to account for potential issues when clearing the email field after a successful submission

    Consider adding error handling for the case when the email is successfully added to
    the waitlist but clearing the email field fails.

    apps/web/src/components/hero/index.tsx [38-47]

     try {
       await fetch(`${url}&EMAIL=${email}`, {
         mode: 'no-cors'
       })
       setEmail('');
    -
     } catch (error) {
    -  // eslint-disable-next-line no-console -- chill
    -  console.error(error)
    +  console.error('Failed to add email to waitlist:', error)
     }
     
    +if (email !== '') {
    +  console.warn('Failed to clear email field after successful submission')
    +}
    +
    • Apply this suggestion
    Suggestion importance[1-10]: 6

    Why: The suggestion adds additional error handling for the scenario where clearing the email field might fail. This improves robustness but is not critical since the failure to clear the field is unlikely to cause significant issues.

    6

    💡 Need additional feedback ? start a PR chat

    Copy link
    Member

    @rajdip-b rajdip-b left a comment

    Choose a reason for hiding this comment

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

    LGTM

    @rajdip-b
    Copy link
    Member

    rajdip-b commented Oct 8, 2024

    @kriptonian1 can you review and merge this? Just make sure the original issue doesn't get closed

    @bansal-harsh-2504
    Copy link
    Contributor Author

    @kriptonian1 @rajdip-b Can you please add hacktoberfest label before merging?

    @rajdip-b
    Copy link
    Member

    rajdip-b commented Oct 8, 2024

    for sure

    @rajdip-b rajdip-b added the hacktoberfest-accepted Your PR has this = Congrats! label Oct 9, 2024
    @rajdip-b rajdip-b merged commit 256d659 into keyshade-xyz:develop Oct 9, 2024
    13 checks passed
    rajdip-b pushed a commit that referenced this pull request Oct 24, 2024
    ## [2.6.0](v2.5.0...v2.6.0) (2024-10-24)
    
    ### 🚀 Features
    
    * **api:**  Add icon and remove description field from workspace ([#435](#435)) ([a99c0db](a99c0db))
    * **api-client:** Added workspace-membership and related tests ([#452](#452)) ([6a1c091](6a1c091))
    * **api-client:** Create controller for User module ([#484](#484)) ([f9d8e83](f9d8e83))
    * **api:** Add prod env schema in env file ([#436](#436)) ([21c3004](21c3004))
    * **api:** Add resend otp implementation ([#445](#445)) ([4dc6aa1](4dc6aa1))
    * **api:** Fetch total count of environments, [secure]s and variables in project ([#434](#434)) ([0c9e50a](0c9e50a))
    * **api:** Replace `projectId` with `name` and `slug` in workspace-role response.  ([#432](#432)) ([af06071](af06071))
    * **cli:** Add functionality to operate on Secrets ([#504](#504)) ([1b4bf2f](1b4bf2f))
    * **cli:** Add project command ([#451](#451)) ([70448e1](70448e1))
    * **cli:** Add workspace operations ([#441](#441)) ([ed38d22](ed38d22))
    * **cli:** implement commands to get, list, update, and delete, workspace roles ([#469](#469)) ([957ea8d](957ea8d))
    * **cli:** Implemented pagination support ([#453](#453)) ([feb1806](feb1806))
    * **cli:** Secret scan ([#438](#438)) ([85cb8ab](85cb8ab))
    * **cli:** Update environment command outputs ([f4af874](f4af874))
    * **platform:** Clearing email field after waitlisting the user email ([#481](#481)) ([256d659](256d659))
    * Remove project IDs from workspace role export data and update tests ([#448](#448)) ([8fdb328](8fdb328))
    * **web:** Configured extra check for waitlisted users already in the list and created toast message for them ([#492](#492)) ([2ddd0ef](2ddd0ef))
    * **web:** show the toast only when email add successfully ([#490](#490)) ([783c411](783c411))
    
    ### 🐛 Bug Fixes
    
    * **api,api-client:** Add environmentSlug in multiple places across the variable module ([#468](#468)) ([d970aff](d970aff))
    * **api:** Replace the id with slug in the global-search service ([#455](#455)) ([74804b1](74804b1))
    * **platform:** Fixed duplicate Google Logo UI fix  ([#450](#450)) ([fb0d6f7](fb0d6f7))
    * resolve footer website name cut-off or overlap issue ([#444](#444)) ([fe03ba2](fe03ba2))
    * **web:** Horizontal Scrolling issue on the website ([#440](#440)) ([655177b](655177b))
    
    ### 📚 Documentation
    
    * Add documentation for environment in CLI ([#462](#462)) ([dad7394](dad7394))
    * Add documentation for project in CLI ([#466](#466)) ([341fb32](341fb32))
    * Add documentation for scan in CLI ([#461](#461)) ([72281e6](72281e6))
    * Add documentation for workspace command ([#464](#464)) ([4aad8a2](4aad8a2))
    * Add instructions for resetting the local Prisma database ([#495](#495)) ([#501](#501)) ([b07ea17](b07ea17))
    * Added docker support documentation ([#465](#465)) ([bc04be4](bc04be4))
    * Added documentation for running the platform ([#473](#473)) ([8b8386b](8b8386b))
    * Added missing mappings to pages ([5de9fd8](5de9fd8))
    * Fix Documentation Hyperlink and update expired Discord invite link ([#496](#496)) ([5a10e39](5a10e39))
    * Updated CLI docs ([#460](#460)) ([c7e0f13](c7e0f13))
    
    ### 🔧 Miscellaneous Chores
    
    * Add more logging to Sentry init ([#470](#470)) ([de4925d](de4925d))
    * **api:** Optimise API docker image size ([#360](#360)) ([ea40dc1](ea40dc1))
    * **api:** Updated lockfile ([a968e78](a968e78))
    * **CI:** Add [secure] scan validation ([f441262](f441262))
    * **cli:** Update controller invocation in environment commands ([#477](#477)) ([596bd1a](596bd1a))
    * Minor changes to variables ([fe01ca6](fe01ca6))
    * **[secure]-scan:** Failing lint issues ([#507](#507)) ([48f45df](48f45df))
    * **[secure]-scan:** Formatted files ([5884833](5884833))
    * Update .env.example ([70ad4f7](70ad4f7))
    * Updated scripts ([9eb76a7](9eb76a7))
    * **web:** email validation ([#487](#487)) ([e8e737a](e8e737a))
    @rajdip-b
    Copy link
    Member

    🎉 This PR is included in version 2.6.0 🎉

    The release is available on GitHub release

    Your semantic-release bot 📦🚀

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    2 participants