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

Feat : User can leave the org by clicking on button #2298

Conversation

AnshulKahar2729
Copy link
Contributor

@AnshulKahar2729 AnshulKahar2729 commented Sep 24, 2024

What kind of change does this PR introduce?

feature

Issue Number:

Fixes #1873

Did you add tests for your changes?

Yes

Snapshots/Videos:

Does this PR introduce a breaking change?

No

Have you read the contributing guide?

Yes

Summary by CodeRabbit

  • New Features

    • Introduced a "Leave" button in the user interface, allowing users to leave their current organization.
    • Added a confirmation modal for users to confirm their intention to leave an organization.
    • Enhanced localization with new and updated entries across multiple languages, including English, French, Hindi, Spanish, and Chinese.
  • Bug Fixes

    • Corrected translation errors in various localization files.
  • Style

    • Updated styles for the new "Leave" button and confirmation modal to improve user experience.
    • Enhanced visual styling for the organization leave interface components.

Copy link
Contributor

coderabbitai bot commented Sep 24, 2024

Walkthrough

The changes introduce a feature that allows users to leave an organization, including the addition of a new GraphQL mutation (LEAVE_ORGANIZATION) and corresponding localization updates across multiple languages. Key-value pairs related to status labels have been removed, while new entries for confirmation prompts have been added. This ensures that the user interface reflects the new functionality and provides appropriate messages in various languages.

Changes

File Change Summary
public/locales/en/common.json Removed several status-related strings, added "confirm."
public/locales/en/translation.json Added "leave," corrected "withdraw," modified "create action item," and added "orgLeave" section.
public/locales/fr/common.json Removed several status-related strings, added "confirm."
public/locales/fr/translation.json Added translations for "leave" and confirmation messages in "orgLeave" section.
public/locales/hi/common.json Removed several status-related strings, added "confirm."
public/locales/hi/translation.json Added "leave" and confirmation messages in "orgLeave" section.
public/locales/sp/common.json Removed several status-related strings, added "confirm."
public/locales/sp/translation.json Added "leave," modified existing phrases, and introduced "orgLeave" section.
public/locales/zh/common.json Removed several status-related strings, added "confirm."
public/locales/zh/translation.json Added "leave" and confirmation messages in "orgLeave" section.
src/GraphQl/Mutations/mutations.ts Added LEAVE_ORGANIZATION mutation.

Assessment against linked issues

Objective Addressed Explanation
An option for users to leave the Organization (#1873)

Possibly related PRs

Suggested reviewers

  • palisadoes

Poem

🐰 In a world of hops and bounds,
A button for leaving now astounds!
With a click, the choice is clear,
"Leave the organization," we cheer!
New words in every tongue we say,
Celebrating change in a joyful way! 🌼


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 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.

Copy link

Our Pull Request Approval Process

We have these basic policies to make the approval process smoother for our volunteer team.

Testing Your Code

Please make sure your code passes all tests. Our test code coverage system will fail if these conditions occur:

  1. The overall code coverage drops below the target threshold of the repository
  2. Any file in the pull request has code coverage levels below the repository threshold
  3. Merge conflicts

The process helps maintain the overall reliability of the code base and is a prerequisite for getting your PR approved. Assigned reviewers regularly review the PR queue and tend to focus on PRs that are passing.

Reviewers

Do not assign reviewers. Our Queue Monitors will review your PR and assign them.
When your PR has been assigned reviewers contact them to get your code reviewed and approved via:

  1. comments in this PR or
  2. our slack channel

Reviewing Your Code

Your reviewer(s) will have the following roles:

  1. arbitrators of future discussions with other contributors about the validity of your changes
  2. point of contact for evaluating the validity of your work
  3. person who verifies matching issues by others that should be closed.
  4. person who gives general guidance in fixing your tests

CONTRIBUTING.md

Read our CONTRIBUTING.md file. Most importantly:

  1. PRs with issues not assigned to you will be closed by the reviewer
  2. Fix the first comment in the PR so that each issue listed automatically closes

Other

  1. 🎯 Please be considerate of our volunteers' time. Contacting the person who assigned the reviewers is not advised unless they ask for your input. Do not @ the person who did the assignment otherwise.
  2. Read the CONTRIBUTING.md file make

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: 12

Outside diff range and nitpick comments (21)
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.module.css (1)

1-4: LGTM! Consider adding responsiveness.

The CSS class .leaveConfirmModalFooter is well-structured and follows good practices:

  • It uses flexbox for layout, which is appropriate for aligning items in a modal footer.
  • The justify-content: space-between property effectively separates the content, likely positioning action buttons at opposite ends of the footer.
  • The naming convention adheres to CSS Modules, ensuring style encapsulation.

This implementation aligns well with the PR objective of adding functionality for users to leave the organization.

Consider enhancing the responsiveness of the footer for smaller screens. You could add a media query to adjust the layout on mobile devices:

@media (max-width: 480px) {
  .leaveConfirmModalFooter {
    flex-direction: column;
    gap: 10px;
  }
}

This change would stack the buttons vertically on smaller screens, improving usability on mobile devices.

src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1)

51-73: LGTM: Modal rendering with a minor suggestion for accessibility

The modal structure and content look good. The use of translations and custom styling is appropriate.

Consider adding an aria-describedby attribute to the Modal for improved accessibility. This can be done by adding an id to the modal body and referencing it in the Modal props:

 <Modal
   show={show}
   onHide={onHide}
   size="lg"
   aria-labelledby="leave-confirm-modal"
+  aria-describedby="leave-confirm-description"
   centered
 >
   {/* ... */}
-  <Modal.Body>
+  <Modal.Body id="leave-confirm-description">
     <h4>{t('confirmation')}</h4>
     <p>{t('description')}</p>
   </Modal.Body>
   {/* ... */}
 </Modal>
src/components/UserPortal/OrganizationCard/OrganizationCard.module.css (2)

61-66: Consider adjusting the margin and width of .leaveBtn

The new .leaveBtn class looks good overall, but there are two potential issues:

  1. The margin-right: 9rem; seems unusually large and might cause layout issues, especially on smaller screens.
  2. The comment "You can adjust the width based on your needs" suggests uncertainty about the optimal width.

Consider the following adjustments:

  1. Remove or reduce the margin-right property, allowing the button's position to be controlled by its container.
  2. Ensure the width is consistent with other buttons (e.g., .joinBtn, .withdrawBtn) for a uniform look.
.leaveBtn {
  display: flex;
  justify-content: space-around;
  width: 8rem;
- margin-right: 9rem;
}

Also, remove the comment about adjusting the width once you've finalized the design.


150-159: Approved: Good improvements for responsive design

The changes to .btnContainer and the addition of .leaveBtn to the button group improve the layout for smaller screens and ensure consistent styling. This aligns well with the PR objectives and enhances the responsive design.

For consistency, consider adding the .leaveBtn class to the selector outside the media query as well (around line 26 in the non-annotated version of the file). This ensures the leave button has the same base styling as other buttons across all screen sizes.

.joinBtn,
.joinedBtn,
-.withdrawBtn {
+.withdrawBtn,
+.leaveBtn {
  display: flex;
  justify-content: space-around;
  width: 8rem;
}
public/locales/fr/common.json (2)

Line range hint 1-87: Overall structure and formatting of the JSON file

The JSON file structure and formatting appear to be consistent and well-maintained:

  • Each key-value pair is on a separate line.
  • The indentation is consistent (2 spaces).
  • The file ends with a single closing curly brace on its own line.

However, there's a minor formatting inconsistency:

The newly added "confirm" translation at line 86 has an extra space before the key. To maintain consistency with the rest of the file, consider removing this extra space:

-  "confirm": "Confirmer"
+"confirm": "Confirmer"

Issues Found: Removed translations are still in use in the codebase.

The following removed translations are still being used:

  • "all"

    • src/utils/useLocalstorage.ts
    • src/utils/currency.ts
    • src/utils/recurrenceUtils/recurrenceUtilityFunctions.ts
    • src/GraphQl/Queries/ActionItemQueries.ts
    • src/GraphQl/Queries/Queries.ts
    • src/screens/OrgSettings/OrgSettings.mocks.ts
    • src/setup/checkEnvFile/checkEnvFile.test.ts
    • scripts/test.js
  • "active"

    • scripts/config-overrides/index.js
  • "disabled"

    • src/GraphQl/Mutations/ActionItemCategoryMutations.ts
  • "completed"

    • src/GraphQl/Mutations/ActionItemMutations.ts
    • src/GraphQl/Queries/ActionItemQueries.ts

Please review these usages to determine whether the translations should be retained, updated, or if the corresponding code should be modified to eliminate dependencies on these translations.

Analysis chain

Line range hint 1-87: Verify the impact of removed translations

According to the AI-generated summary, several localization strings have been removed from this file, including "all", "active", "disabled", "pending", "completed", "late", "createdLatest", "createdEarliest", and "searchBy". These removals are not visible in the provided code snippet.

Please ensure that:

  1. These translations are no longer needed in the French localization.
  2. The removal of these translations doesn't break any existing functionality in the French version of the application.
  3. If these translations are still needed, they are provided through another mechanism or file.

Run the following script to verify the usage of the removed translations:

If any of these translations are still in use, please reconsider their removal or update the corresponding code.


To address the issue with unrecognized file types, please run the following updated script:


To successfully verify the usage of the removed translations without encountering unrecognized file type errors, please run the following updated script:

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for usage of removed translations in the codebase

# Test: Search for usage of removed translations
removed_translations=("all" "active" "disabled" "pending" "completed" "late" "createdLatest" "createdEarliest" "searchBy")

for translation in "${removed_translations[@]}"; do
  echo "Searching for usage of '$translation':"
  rg --type js --type ts --type jsx --type tsx --type vue -i "\b$translation\b"
  echo "---"
done

Length of output: 2413


Script:

#!/bin/bash
# Description: Check for usage of removed translations in the codebase, excluding unsupported file types

# List of translations to verify
removed_translations=("all" "active" "disabled" "pending" "completed" "late" "createdLatest" "createdEarliest" "searchBy")

for translation in "${removed_translations[@]}"; do
  echo "Searching for usage of '$translation':"
  rg --type js --type ts --type tsx --type vue -i "\b$translation\b"
  echo "---"
done

Length of output: 2314


Script:

#!/bin/bash
# Description: Check for usage of removed translations in the codebase using specific file patterns

# List of translations to verify
removed_translations=("all" "active" "disabled" "pending" "completed" "late" "createdLatest" "createdEarliest" "searchBy")

for translation in "${removed_translations[@]}"; do
  echo "Searching for usage of '$translation':"
  rg -g "*.js" -g "*.ts" -g "*.vue" -i "\b$translation\b"
  echo "---"
done

Length of output: 3859

src/GraphQl/Mutations/OrganizationMutations.ts (2)

286-292: LGTM! Consider adding error handling.

The LEAVE_ORGANIZATION mutation is well-structured and aligns with the PR objective. It correctly uses the organizationId to identify the organization and returns the _id for confirmation.

Consider adding error handling to provide more informative feedback. For example:

mutation ($organizationId: ID!) {
  leaveOrganization(organizationId: $organizationId) {
    _id
    success
    message
  }
}

This would allow the server to communicate success or failure reasons more explicitly.


286-292: Consider grouping related mutations.

The LEAVE_ORGANIZATION mutation is well-placed and structured consistently with other mutations. However, for better code organization, consider grouping it with other membership-related mutations like SEND_MEMBERSHIP_REQUEST and JOIN_PUBLIC_ORGANIZATION.

You could move this mutation to be adjacent to other membership-related mutations for improved code organization.

src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx (3)

16-17: Consider grouping related imports together.

While the new imports are necessary for the added functionality, consider reorganizing the imports for better readability. Group related imports together, for example, place the LogoutIcon import with other Material-UI imports, and the LeaveConfirmModal import with other local component imports.


156-164: LGTM: "Leave Organization" button implementation is correct.

The new button is well-implemented, using the correct icon, styling, and translation key. The onClick handler properly sets the modalShow state to true.

However, consider the placement of this button for better user experience. Placing a "Leave Organization" button prominently might not be ideal. Consider moving it to a less prominent location, such as within a dropdown menu or at the bottom of the sidebar, to prevent accidental clicks.


165-169: LGTM: LeaveConfirmModal implementation is correct.

The LeaveConfirmModal component is correctly implemented with the necessary props (orgId, show state, and onHide function). The placement within the component structure is appropriate.

Consider the following improvements:

  1. Add error handling for cases where leaving the organization fails.
  2. Implement a loading state while the leave operation is in progress.
  3. Ensure that the user is redirected appropriately after successfully leaving the organization.
src/components/UserPortal/OrganizationCard/OrganizationCard.tsx (2)

193-219: LGTM. New "leave" button and modal added.

The new button container for accepted memberships is well-implemented. It includes both the existing "visit" button and the new "leave" button, along with the LeaveConfirmModal component. The modal visibility is correctly controlled by the modalShow state.

For consistency, consider using object shorthand for the onHide prop:

-  onHide={() => setModalShow(false)}
+  onHide={setModalShow}

This change is optional but aligns with modern JavaScript practices.


204-213: LGTM. "Leave" button implementation meets requirements.

The "leave" button is correctly implemented using the React Bootstrap Button component with the appropriate "danger" variant. It opens the leave confirmation modal when clicked, aligning with the PR objectives.

Consider adding an aria-label attribute to improve accessibility:

 <Button
   variant="danger"
   data-testid="leaveBtn"
   className={styles.leaveBtn}
+  aria-label={t('leaveOrganization')}
   onClick={() => {
     setModalShow(true);
   }}
 >
   {t('leave')}
 </Button>

This change will provide more context for screen reader users.

public/locales/zh/translation.json (2)

949-949: Translation updated correctly, but consider revising

The translation for "actionItemCategoryDetails" has been updated:

"actionItemCategoryDetails": "行动项目类别详细信息",

While this is a correct translation, it might be slightly long for UI purposes. Consider a more concise version if space is a concern:

"actionItemCategoryDetails": "行动项类别详情",

This suggestion maintains the meaning while being more compact.


Line range hint 949-971: Ensure consistency in terminology

In the "actionItemCategories" section, there's an inconsistency in the Chinese terminology used for "action item". Some translations use "操作项" while others use "行动项目". For example:

  • Line 949: "行动项目类别详细信息"
  • Line 956: "操作项类别创建成功"
  • Line 957: "行动项目类别已成功更新"

To improve clarity and consistency, choose one term (either "操作项" or "行动项目") and use it consistently throughout this section and the entire translation file.

public/locales/en/translation.json (1)

1042-1047: Approve new "orgLeave" section with a minor suggestion

The new "orgLeave" section provides clear and consistent translations for the leave organization feature. However, there's a minor improvement that can be made.

Consider removing the extra space at the end of the "confirmation" message:

-    "confirmation": "Are you sure you want to leave the organization? ",
+    "confirmation": "Are you sure you want to leave the organization?",

This will ensure consistency with other messages and prevent potential trailing space issues in the UI.

public/locales/hi/translation.json (3)

153-154: LGTM! Consider expanding the "leave" translation.

The new translations for "removeConfirmation" and "leave" are good additions that align with the PR objectives. The "removeConfirmation" message is clear and uses template literals correctly.

However, the "leave" translation might benefit from being more specific:

Consider changing:

-    "leave": "छोड़ो"
+    "leave": "संगठन छोड़ो"

This would make it clearer that the action is specifically about leaving an organization.


290-290: LGTM! Consider removing the full stop.

The addition of the "completed" translation is a good enhancement for event-related functionality.

However, consider removing the full stop at the end of the translation:

-    "completed": "पुरा होना।",
+    "completed": "पुरा होना",

This would be more consistent with other short translations in the file and more flexible for use in various contexts.


1043-1048: Excellent addition! Consider refining the error message.

The new "orgLeave" object with its comprehensive set of translations is an excellent addition that directly supports the PR objective of allowing users to leave an organization. The messages are detailed and informative, which will enhance the user experience during this process.

One minor suggestion for improvement:

-    "errorOccured": "एक त्रुटि पाई गई। कृपया बाद में पुन: प्रयास करें।",
+    "errorOccurred": "एक त्रुटि हुई। कृपया बाद में पुनः प्रयास करें।",

This change corrects the spelling of "occurred" in the key and slightly refines the Hindi translation to be more idiomatic.

public/locales/sp/translation.json (2)

745-757: LGTM: Improved consistency in translations

The changes in the "orgSettings" object improve consistency in capitalization and wording. The title update to "Configuración Talawa" and the modifications to other phrases enhance the overall user experience.

Consider updating "Otras Configuraciones" to "Otras configuraciones" for consistent capitalization with the other items in this section.


1281-1287: LGTM: Added translations for organization leave functionality

The new "orgLeave" object contains appropriate translations for the organization leave functionality, which directly aligns with the PR objectives. The messages for confirmation, description, and error handling are clear and informative.

Consider updating "¿Estás segura de que quieres dejar la organización?" to "¿Estás seguro de que quieres dejar la organización?" to use the masculine form, which is more commonly used as a neutral form in Spanish. Alternatively, you could use a gender-neutral form like "¿Estás seguro/a de que quieres dejar la organización?" to be more inclusive.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 959399d and 69d0c2c.

Files selected for processing (24)
  • public/locales/en/common.json (1 hunks)
  • public/locales/en/errors.json (1 hunks)
  • public/locales/en/translation.json (8 hunks)
  • public/locales/fr/common.json (1 hunks)
  • public/locales/fr/errors.json (1 hunks)
  • public/locales/fr/translation.json (8 hunks)
  • public/locales/hi/common.json (1 hunks)
  • public/locales/hi/errors.json (1 hunks)
  • public/locales/hi/translation.json (8 hunks)
  • public/locales/sp/common.json (1 hunks)
  • public/locales/sp/errors.json (1 hunks)
  • public/locales/sp/translation.json (8 hunks)
  • public/locales/zh/common.json (1 hunks)
  • public/locales/zh/errors.json (1 hunks)
  • public/locales/zh/translation.json (2 hunks)
  • src/GraphQl/Mutations/OrganizationMutations.ts (1 hunks)
  • src/GraphQl/Mutations/mutations.ts (1 hunks)
  • src/components/UserPortal/OrganizationCard/OrganizationCard.module.css (2 hunks)
  • src/components/UserPortal/OrganizationCard/OrganizationCard.tsx (3 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.module.css (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.module.css (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx (3 hunks)
Files skipped from review due to trivial changes (5)
  • public/locales/en/errors.json
  • public/locales/fr/errors.json
  • public/locales/hi/errors.json
  • public/locales/sp/errors.json
  • public/locales/zh/errors.json
Additional comments not posted (38)
public/locales/zh/common.json (1)

Line range hint 1-86: Concerns about removed translations and discrepancy with PR objectives

I have some concerns about the changes in this file:

  1. Multiple translations have been removed, which could lead to missing translations in the UI. Was this intentional?
  2. The remaining "successfullyUpdated" translation doesn't seem to be related to the new "leave organization" feature mentioned in the PR objectives.
  3. There's a discrepancy between the PR objectives (adding a feature for users to leave an organization) and the changes in this file (removal of translations).

Could you please clarify the following:

  1. Why were these translations removed? If it was unintentional, please restore them.
  2. If the removal was intentional, are these translations being moved to another file or replaced with a different system?
  3. Where is the actual implementation of the "leave organization" feature? Are there other files in this PR that contain the relevant changes?

Let's check if there are other files in this PR that might contain the implementation of the "leave organization" feature:

This will help us identify if the feature implementation is missing from the PR or if it's present in other files that weren't included in this review.

src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (3)

17-25: LGTM: Component definition and translation setup

The component definition, prop destructuring, and translation setup look good. The use of separate translation namespaces for common and specific translations is a good practice for maintaining organized translations.


76-76: LGTM: Component export

The default export of the component is correct and follows standard React practices.


1-76: Overall assessment: Well-implemented component with minor improvements needed

The LeaveConfirmModal component is well-structured and implements the required functionality for confirming a user's action to leave an organization. It makes good use of React hooks, Apollo Client for GraphQL operations, and internationalization.

Key strengths:

  1. Clear and appropriate component structure
  2. Good use of TypeScript for type safety
  3. Proper implementation of internationalization
  4. Effective error handling and user feedback via toast notifications

Areas for improvement:

  1. Replace redirect with useNavigate for in-component navigation
  2. Enhance error handling with more specific error messages
  3. Minor accessibility improvement for the modal

After addressing these points, the component will be more robust and maintainable. Great job overall!

public/locales/en/common.json (1)

Line range hint 1-87: Clarify the removal of several localization strings.

The diff indicates that several key-value pairs have been removed from this file, including status labels ("All", "Active", "Disabled", "Pending", "Completed", "Late") and search-related strings ("Created Latest", "Created Earliest", "Search by {{item}}"). These removals are not mentioned in the PR objectives and could potentially impact existing functionality.

Please clarify if these removals are intentional and part of the feature implementation. If not, they should be restored. Run the following script to check for any remaining usage of these strings in the codebase:

#!/bin/bash
# Description: Check for usage of removed localization strings

# Test: Search for usage of removed strings
removed_strings=("all" "active" "disabled" "pending" "completed" "late" "createdLatest" "createdEarliest" "searchBy")

for string in "${removed_strings[@]}"; do
  echo "Checking usage of '$string':"
  rg --type typescript --type javascript -i 'useTranslation|t\(' -A 3 -B 3 | rg -i "$string"
  echo "---"
done

If any of these strings are still in use, they should be kept in the localization file.

public/locales/sp/common.json (1)

Line range hint 1-87: File structure and formatting look good

The overall structure and formatting of the JSON file are well-maintained. The new addition follows the existing format consistently.

public/locales/hi/common.json (2)

86-86: New localization entry added for "confirm".

The addition of the "confirm" entry with the Hindi translation "पुष्टि करें" is likely related to the new feature for users to leave the organization. This entry could be used in the confirmation dialog when a user attempts to leave.


Line range hint 1-87: Verify the removal of localization entries.

The AI summary indicates that several entries have been removed from this file, including "all", "active", "disabled", "pending", "completed", "late", "createdLatest", "createdEarliest", and "searchBy". However, these removals are not visible in the provided diff.

Please confirm if these entries were intentionally removed as part of this PR. If so, ensure that these terms are no longer used in the application to avoid any missing translations. If the removals were unintentional, please restore the missing entries.

To verify the changes, you can run the following script:

This script will help determine if the entries are still present in the file and if they are being used elsewhere in the codebase.

src/components/UserPortal/OrganizationCard/OrganizationCard.module.css (1)

Line range hint 1-159: Summary: Changes align well with PR objectives

The modifications to this CSS module file successfully introduce styling for the new "leave organization" feature and improve the responsive design for smaller screens. These changes directly address the PR objectives of allowing users to leave an organization.

Key points:

  1. A new .leaveBtn class is added with appropriate styling.
  2. The .btnContainer is modified to improve layout on smaller screens.
  3. The leave button is integrated consistently with existing button styles.

The suggested minor adjustments in the previous comments will further enhance the implementation. Overall, these changes provide a solid foundation for the new feature while maintaining design consistency.

public/locales/fr/common.json (1)

86-86: New translation added: "confirm"

The new translation for "confirm" has been added correctly. The French translation "Confirmer" is accurate and appropriate for this context.

src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (2)

1-37: LGTM: Imports and mock setups are well-structured.

The imports, mock setups, and Apollo Client mock for the LEAVE_ORGANIZATION mutation are comprehensive and appropriate for testing the LeaveConfirmModal component. They effectively isolate the component for testing.


39-51: LGTM: Cancel button functionality test is well-implemented.

This test case effectively verifies that clicking the cancel button triggers the onHide callback. The component rendering, user interaction simulation, and expectation check are all implemented correctly.

src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.module.css (1)

112-135: Summary: New styles align with PR objectives, with room for minor improvements.

The added styles for the "leave organization" button successfully implement the feature requested in issue #1873. The styling is generally consistent with the existing sidebar design, which is positive.

Key points:

  1. The button's placement in the sidebar aligns with the proposed solution in the issue.
  2. The use of red color appropriately signifies a destructive action.
  3. The styling is responsive and fits well within the existing structure.

While the implementation meets the basic requirements, the suggested improvements in the previous comments will enhance accessibility, usability, and visual consistency. These include:

  • Increasing the button's touch target size
  • Ensuring sufficient color contrast
  • Adding a visible focus indicator
  • Maintaining consistent spacing and icon sizes

Overall, these changes effectively address the PR objectives while maintaining the integrity of the existing design system. After addressing the suggested improvements, this addition will provide users with a clear and accessible way to leave the organization.

src/GraphQl/Mutations/OrganizationMutations.ts (1)

286-292: Verify UI implementation for leaving organization.

The GraphQL mutation for leaving an organization is correctly implemented. However, to fully meet the PR objectives, we need to ensure that the UI changes (i.e., the button for users to leave the organization) are also included in this pull request.

Please confirm that the UI changes for this feature are included in other files of this PR. If not, they should be added to complete the feature implementation.

Verification successful

UI implementation for leaving organization is present.

The search results indicate that UI components related to leaving an organization, such as LeaveConfirmModal and relevant buttons, are implemented in the following files:

  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx
  • src/components/UserPortal/OrganizationCard/OrganizationCard.tsx

Therefore, the UI changes required for this feature are included in the pull request.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Search for UI changes related to leaving organization

# Test: Look for React component or HTML changes related to leaving organization
rg --type typescript --type tsx --type jsx -i "leave.*(organization|org)"
rg --type html -i "leave.*(organization|org)"

Length of output: 158


Script:

#!/bin/bash
# Description: Corrected search for UI changes related to leaving organization

# Search in TypeScript and related files
rg --type ts --type tsx --type jsx -i "leave.*(organization|org)"

# Search in HTML files
rg --type html -i "leave.*(organization|org)"

Length of output: 143


Script:

#!/bin/bash
# Description: Search for UI changes related to leaving organization using file extensions

# Search in TypeScript and related files by specifying extensions
rg -g "*.ts" -g "*.tsx" -g "*.jsx" -i "leave.*(organization|org)"

# Search in HTML files
rg -g "*.html" -i "leave.*(organization|org)"

Length of output: 2474

src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx (2)

50-50: LGTM: State variable declaration is correct and well-placed.

The new state variable modalShow is correctly declared using React.useState and follows a clear naming convention. Its placement within the component is appropriate.


Line range hint 1-224: Overall implementation aligns well with PR objectives.

The changes successfully implement the feature described in PR #2298 and linked issue #1873, allowing users to leave the organization via a button click with a confirmation modal. The implementation is generally well-done and follows existing conventions.

Some minor improvements have been suggested:

  1. Reorganizing imports for better readability.
  2. Reconsidering the placement of the "Leave Organization" button for better UX.
  3. Adding error handling and loading states for the leave operation.

These suggestions aim to enhance the code quality and user experience without fundamentally changing the implemented functionality.

src/components/UserPortal/OrganizationCard/OrganizationCard.tsx (4)

81-81: LGTM. State for modal visibility added.

The modalShow state variable is correctly implemented using the useState hook. It's appropriately initialized to false, ensuring the modal is hidden by default.


194-203: LGTM. "Visit" button implementation is correct.

The "visit" button is well-implemented using the React Bootstrap Button component. It correctly navigates to the organization page when clicked, using the navigate function from react-router-dom. The styling and data-testid attributes are appropriate for testing and UI consistency.


Line range hint 1-254: Summary: PR objectives met, implementation is solid.

The changes in this file successfully implement the functionality for users to leave an organization, as specified in the PR objectives. The new "leave" button and confirmation modal are well-integrated into the existing OrganizationCard component. The code is clean, follows React best practices, and maintains consistency with the existing codebase.

A few minor suggestions were made to further improve the code:

  1. Verify the import path for the LeaveConfirmModal component.
  2. Consider using object shorthand for the onHide prop in the LeaveConfirmModal.
  3. Add an aria-label to the "leave" button for improved accessibility.

Overall, the implementation meets the requirements and is ready for merging after addressing the minor suggestions.


20-20: LGTM. Verify the import path.

The import of LeaveConfirmModal is correctly added and aligns with the new leave functionality. However, it's worth double-checking if the import path is correct, as it's coming from a parent directory (../UserSidebarOrg/).

Verification successful

Import Path Verified

The import of LeaveConfirmModal has been successfully verified. The file exists at src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx, ensuring the import path is correct and aligns with the new leave functionality.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify the existence of LeaveConfirmModal in the specified path
fd -p "src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.(tsx|jsx)" --type f

Length of output: 150

src/GraphQl/Mutations/mutations.ts (1)

725-725: New mutation export aligns with PR objectives.

The addition of the LEAVE_ORGANIZATION export aligns well with the PR objective of allowing users to leave an organization. This export will make the mutation available for use in other parts of the application.

However, I have a few observations:

  1. The LEAVE_ORGANIZATION mutation itself is not defined in this file. It's likely defined in the OrganizationMutations file, as it's being exported alongside other organization-related mutations.

  2. The export is correctly placed with other organization-related mutation exports.

  3. The export syntax is correct and consistent with other exports in this file.

To ensure the LEAVE_ORGANIZATION mutation is properly defined, please run the following script:

If the script doesn't find the mutation definition, please ensure it's properly defined in the OrganizationMutations.ts file.

Verification successful

LEAVE_ORGANIZATION mutation is correctly defined.

The LEAVE_ORGANIZATION mutation is properly defined in OrganizationMutations.ts and correctly exported in mutations.ts. This ensures the mutation is available for use throughout the application as intended.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the LEAVE_ORGANIZATION mutation is defined in OrganizationMutations.ts

# Test: Search for the LEAVE_ORGANIZATION mutation definition
rg --type typescript 'export const LEAVE_ORGANIZATION = gql`' src/GraphQl/Mutations/OrganizationMutations.ts

Length of output: 145


Script:

#!/bin/bash
# Description: Verify the LEAVE_ORGANIZATION mutation is defined in the codebase

# Test: Search for the LEAVE_ORGANIZATION mutation definition across all TypeScript files
rg --type ts 'export const LEAVE_ORGANIZATION\s*=\s*gql`' .

Length of output: 149

public/locales/zh/translation.json (2)

289-289: New translation added correctly

The new translation for "completed" has been added correctly:

"completed": "完全的",

This translation seems appropriate for the context.


Line range hint 1-1077: Overall approval with minor suggestions

The changes made to this translation file are correct and well-implemented. The file structure is good, and it covers a wide range of UI elements and messages. The only notable issue is the inconsistency in terminology for "action item" in the "actionItemCategories" section, which has been addressed in a previous comment.

Consider implementing the suggested terminology consistency and the minor rewording for conciseness. Otherwise, the translations appear to be appropriate and functional.

public/locales/en/translation.json (2)

762-763: Approve new translations for chat and leave organization

The new translations for "chat" and "leave" in the "userSidebarOrg" section are consistent and appropriate.


939-939: Approve renaming of "categoryDetails" to "actionItemCategoryDetails"

The change from "categoryDetails" to "actionItemCategoryDetails" improves clarity and consistency in the translations.

Please run the following script to ensure all occurrences have been updated:

#!/bin/bash
# Description: Check for any remaining usage of the old key "categoryDetails"
# Expect: No occurrences of the old key

rg --type-add 'frontend:*.{js,jsx,ts,tsx}' -t frontend 'categoryDetails'
public/locales/hi/translation.json (2)

Line range hint 1-1050: Overall, excellent additions and improvements!

The changes to this translation file are comprehensive and well-aligned with the PR objective of allowing users to leave an organization. The new translations provide good coverage for the user flow and will enhance the user experience for Hindi-speaking users.

A few minor points to consider:

  1. Ensure consistency in the "leave" translations across different objects.
  2. Verify the updated translations for "settings" with a native speaker.
  3. Consider the suggested refinements for punctuation and wording in some translations.

Great work on internationalizing this new feature!


603-603: LGTM! Verify these translation refinements with a native speaker.

The changes to the "orgSettings" translations appear to be refinements:

  1. "title" changed from "सेटिंग्स" to "समायोजन"
  2. "otherSettings" slightly modified from "अन्य सेटिंग्स" to "अन्य सेटिंग"

These updates seem to be improvements in the Hindi translations.

To ensure accuracy:

Also applies to: 605-606, 609-609, 611-611

Verification successful

Verified: The updated translations for "settings" and "other settings" are correctly applied in the localization files.

  • public/locales/hi/common.json: "settings": "समायोजन"
  • public/locales/hi/translation.json:
    • "title": "समायोजन"
    • "profileSettings": "पार्श्वचित्र समायोजन"
    • "otherSettings": "अन्य सेटिंग"

All usages are appropriately confined to the locale files, ensuring the translations are correctly implemented.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify the usage of new translations in the codebase
echo "Searching for usages of 'समायोजन' (new translation for 'settings'):"
rg --type-add 'jsx:*.jsx' --type jsx --type ts --type tsx "समायोजन"

echo "\nSearching for usages of 'अन्य सेटिंग' (new translation for 'other settings'):"
rg --type-add 'jsx:*.jsx' --type jsx --type ts --type tsx "अन्य सेटिंग"

echo "\nPlease verify that these new translations are used correctly in the codebase."

Length of output: 784


Script:

#!/bin/bash
# Verify the usage of new translations in the codebase

echo "Searching for usages of 'समायोजन' (new translation for 'settings'):"
rg --type jsx --type ts --type tsx "समायोजन"

echo "\nSearching for usages of 'अन्य सेटिंग' (new translation for 'other settings'):"
rg --type jsx --type ts --type tsx "अन्य सेटिंग"

echo "\nPlease verify that these new translations are used correctly in the codebase."

Length of output: 738


Script:

#!/bin/bash
# Verify the usage of new translations in the codebase

echo "Searching for usages of 'समायोजन' (new translation for 'settings'):"
rg "समायोजन" -g "*.jsx" -g "*.ts" -g "*.tsx"

echo "\nSearching for usages of 'अन्य सेटिंग' (new translation for 'other settings'):"
rg "अन्य सेटिंग" -g "*.jsx" -g "*.ts" -g "*.tsx"

echo "\nPlease verify that these new translations are used correctly in the codebase."

Length of output: 682


Script:

#!/bin/bash
# Verify the usage of new translations in the codebase

echo "Searching for usages of 'समायोजन' (new translation for 'settings'):"
rg "समायोजन"

echo "\nSearching for usages of 'अन्य सेटिंग' (new translation for 'other settings'):"
rg "अन्य सेटिंग"

echo "\nPlease verify that these new translations are used correctly in the codebase."

Length of output: 956

public/locales/fr/translation.json (8)

151-151: LGTM: New translation for 'leave' added

The new translation "leave": "partir" has been correctly added. This aligns with the PR objective of introducing functionality for users to leave an organization.


290-290: LGTM: New translation for 'completed' added

The new translation "completed": "Complété" has been correctly added. This is an appropriate translation for marking items as completed.


315-315: LGTM: Simplified translation for 'Action Items'

The translation for "Action Items" has been simplified to "title": "Éléments d'action". This change is appropriate and maintains the correct meaning while being more concise.


608-609: LGTM: Refined translations for 'noData' and 'otherSettings'

Two translations have been refined:

  1. "noData": "Pas de données" (previously "Aucune donnée")
  2. "otherSettings": "Autres réglages" (previously "Autres paramètres")

Both changes are appropriate and maintain the correct meaning while slightly improving the French phrasing.


762-763: LGTM: Translations for 'communityProfile' and 'leave' in user sidebar

The translations in the user sidebar section are correct:

  1. "communityProfile": "Profil de la communauté" (unchanged)
  2. "leave": "Quitter l'organisation" (new addition)

Note that there are two different translations for "leave" in this file:

  • "leave": "partir" (line 151)
  • "leave": "Quitter l'organisation" (line 763)

This is acceptable as the context is different (general vs. specific to leaving an organization).


859-859: LGTM: New translation for donation success added

The new translation "success": "Don réussi" has been correctly added to the "donate" section. This appropriately indicates a successful donation in French.


1043-1048: LGTM: New 'orgLeave' section with leave organization translations

A new "orgLeave" section has been added with the following translations:

  1. "confirmation": "Etes-vous sûr de vouloir quitter l'organisation ? "
  2. "heading": "Quitter l'organisation ?"
  3. "description": "Etes-vous sûr de vouloir quitter l'organisation ? Cette action ne peut pas être annulée. Si l'organisation nécessite une approbation, vous ne pourrez pas la rejoindre sans cette approbation. Toutes les données ou autorisations associées peuvent également être perdues."
  4. "errorOccured": "Une erreur s'est produite. Veuillez réessayer plus tard."
  5. "orgLeft": "Vous avez quitté l'organisation."

These translations are correct and comprehensive, covering the confirmation, error, and success scenarios for the leave organization functionality. This addition aligns well with the PR objective.


Line range hint 1-1050: Overall assessment: French translations updated successfully

The changes to this file successfully implement the translations needed for the new "leave organization" functionality, aligning with the PR objective. Additionally, several other translations have been refined or added, improving the overall quality of the French localization.

Key points:

  1. New "orgLeave" section added with comprehensive translations for the leave organization flow.
  2. Two variations of "leave" translation added in different contexts.
  3. Minor refinements to existing translations improve clarity.
  4. New translations added for various UI elements and messages.

All changes appear to be correct and appropriate for their respective contexts.

public/locales/sp/translation.json (3)

230-231: LGTM: New translation added for leaving organization

The changes in this segment look good. The "removeConfirmation" message has been slightly reformatted without changing its meaning, and a new translation for "leave" has been added, which aligns with the PR objective of allowing users to leave the organization.


962-963: LGTM: Added translation for leaving organization in sidebar

The addition of the "leave" key with the translation "Dejar la organización" in the userSidebarOrg object is appropriate and aligns with the PR objective of allowing users to leave the organization.


1068-1068: Verify the removal of the "success" key

The "success" key has been removed from the "userEvents" object. While this aligns with the AI-generated summary mentioning the removal of donation-related messages, it's not directly related to the PR objective of allowing users to leave organizations.

Could you please confirm if the removal of this "success" message is intentional and related to any changes in the donation functionality? If it's not related to the current PR objectives, consider keeping this message or moving it to a more appropriate section if needed.

public/locales/en/common.json Outdated Show resolved Hide resolved
public/locales/en/translation.json Outdated Show resolved Hide resolved
public/locales/en/translation.json Outdated Show resolved Hide resolved
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: 1

Outside diff range and nitpick comments (1)
public/locales/hi/translation.json (1)

411-411: Minor spelling correction needed

The translation for "completed" is generally correct, but there's a small spelling error in the Hindi text.

Consider changing "पुरा होना।" to "पूरा होना।" to correct the spelling of "पूरा" (complete).

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 69d0c2c and 1da0a1d.

Files selected for processing (6)
  • public/locales/en/translation.json (6 hunks)
  • public/locales/fr/translation.json (6 hunks)
  • public/locales/hi/translation.json (6 hunks)
  • public/locales/sp/translation.json (8 hunks)
  • public/locales/zh/translation.json (2 hunks)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx (3 hunks)
Files skipped from review as they are similar to previous changes (5)
  • public/locales/en/translation.json
  • public/locales/fr/translation.json
  • public/locales/sp/translation.json
  • public/locales/zh/translation.json
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx
Additional context used
Biome
public/locales/hi/translation.json

[error] 1327-1327: expected , but instead found "users"

Remove "users"

(parse)

Additional comments not posted (5)
public/locales/hi/translation.json (5)

219-219: LGTM: New translation added for 'leave' action

The addition of the "leave" key with the Hindi translation "छोड़ो" is appropriate and aligns well with the PR objective of allowing users to leave the organization.


762-770: LGTM: Improved translations for settings

The changes in the "orgSettings" section improve the Hindi translations:

  1. "title" changed from "सेटिंग्स" to "समायोजन", which is a more formal Hindi term for "settings".
  2. "otherSettings" slightly modified from "अन्य सेटिंग्स" to "अन्य सेटिंग", removing the plural form which is more natural in Hindi for this context.

These refinements enhance the quality of the translations.


976-976: LGTM: Clear translation added for 'leave organization' action

The addition of the "leave" key with the Hindi translation "संगठन छोड़ें" (leave organization) in the "userSidebarOrg" section is clear and directly aligns with the PR objective. This translation is more specific than the earlier "छोड़ो" and provides better context to the user.


1320-1325: LGTM: Comprehensive translations added for 'leave organization' feature

The new "orgLeave" section is a well-structured and comprehensive addition that fully supports the PR objective. It includes translations for:

  • Confirmation prompt
  • Heading
  • Detailed description of the action and its consequences
  • Error message
  • Success message

These translations provide clear and informative content for users interacting with the 'leave organization' feature.


Line range hint 1-1327: Summary of changes and suggestions

This review has covered the following main points:

  1. New translations added for the 'leave organization' feature, which align well with the PR objectives.
  2. Refinements to existing translations, improving their clarity and naturalness in Hindi.
  3. A comprehensive new section "orgLeave" that provides detailed translations for the leave organization process.
  4. A minor spelling correction suggested for the "completed" key.
  5. A JSON syntax error at the end of the file that needs to be fixed.

Overall, the changes significantly improve the Hindi localization, particularly for the new 'leave organization' feature. Please address the JSON syntax error and consider the spelling correction to finalize these excellent additions to the translation file.

public/locales/hi/translation.json Outdated Show resolved Hide resolved
Copy link

codecov bot commented Sep 24, 2024

Codecov Report

Attention: Patch coverage is 93.54839% with 2 lines in your changes missing coverage. Please review.

Project coverage is 97.64%. Comparing base (7496bb3) to head (3f492ff).
Report is 16 commits behind head on develop.

Files with missing lines Patch % Lines
...ts/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx 86.66% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2298      +/-   ##
===========================================
+ Coverage    97.62%   97.64%   +0.02%     
===========================================
  Files          250      251       +1     
  Lines         7188     7212      +24     
  Branches      2069     2062       -7     
===========================================
+ Hits          7017     7042      +25     
+ Misses         159      158       -1     
  Partials        12       12              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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: 1

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 94190c9 and 9f0c37b.

Files selected for processing (6)
  • public/locales/en/translation.json (7 hunks)
  • public/locales/fr/translation.json (7 hunks)
  • public/locales/hi/translation.json (7 hunks)
  • public/locales/sp/translation.json (8 hunks)
  • public/locales/zh/common.json (1 hunks)
  • public/locales/zh/translation.json (7 hunks)
Files skipped from review as they are similar to previous changes (5)
  • public/locales/en/translation.json
  • public/locales/fr/translation.json
  • public/locales/hi/translation.json
  • public/locales/sp/translation.json
  • public/locales/zh/common.json
Additional comments not posted (7)
public/locales/zh/translation.json (7)

236-237: New translations added for error and leave actions.

The following translations have been added:

  • "errorOccured": "发生错误" (An error occurred)
  • "leave": "离开" (Leave)

These translations are concise and accurately convey the intended meaning in Chinese.


770-770: New translation added for custom fields management.

The translation "manageCustomFields": "管理自定义字段" has been added. This translation accurately conveys the meaning of managing custom fields in Chinese.


981-982: New translations added for menu and leave actions in user sidebar.

The following translations have been added:

  • "menu": "菜单" (Menu)
  • "leave": "离开" (Leave)

These translations are concise and accurately convey the intended meaning in Chinese.


1192-1192: Updated translation for action item category details.

The translation for "actionItemCategoryDetails" has been updated to "行动项目类别详细信息". This translation is more specific and accurately describes the concept of action item category details in Chinese.


1205-1206: New translations added for edit and category details actions.

The following translations have been added:

  • "editButton": "编辑按钮" (Edit button)
  • "categoryDetails": "类别详情" (Category details)

These translations accurately convey the intended meaning in Chinese.


1320-1326: New section added for organization leave functionality.

A new "orgLeave" section has been added with the following translations:

  • "confirmation": "您确定要离开该组织吗?" (Are you sure you want to leave this organization?)
  • "heading": "离开组织?" (Leave organization?)
  • "description": "您确定要离开该组织吗?此操作无法撤销。如果该组织需要批准,您将无法在没有批准的情况下重新加入。任何相关的数据或权限可能也会丢失。" (Are you sure you want to leave this organization? This action cannot be undone. If the organization requires approval, you won't be able to rejoin without approval. Any associated data or permissions may also be lost.)
  • "errorOccured": "发生错误。请稍后再试。" (An error occurred. Please try again later.)
  • "orgLeft": "您已离开该组织。" (You have left the organization.)

These translations accurately convey the intended meaning and provide clear information about the consequences of leaving an organization.


Line range hint 1-1326: Overall assessment of translation changes

The changes to the Chinese translation file are generally well-implemented and maintain consistency with the existing translations. New sections, such as the organization leave functionality, provide clear and informative messages in Chinese. Most of the added or modified translations accurately convey the intended meaning.

However, there is one minor issue to address:

  1. The translation for "completed" (line 411) could be improved for better context-specific accuracy.

Apart from this small improvement opportunity, the translations are of good quality and should effectively serve Chinese-speaking users of the application.

public/locales/zh/translation.json Outdated Show resolved Hide resolved
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: 1

Outside diff range and nitpick comments (1)
src/components/UserPortal/OrganizationCard/OrganizationCard.test.tsx (1)

Line range hint 1-241: General improvements for the test suite

While reviewing the new test case, I noticed some areas where the overall test suite could be improved:

  1. Replace the custom wait() function with waitFor() from @testing-library/react throughout the file. This will make the tests more reliable and easier to understand.

  2. Consider extracting common setup code (like rendering the component with providers) into a helper function to reduce duplication and improve maintainability.

  3. Make assertions more specific in some test cases. For example, instead of just checking if a button is in the document, also verify its text or other properties.

  4. Use screen.getByRole() where possible instead of getByTestId() for better accessibility and less coupling to implementation details.

Here's an example of how you might refactor the common setup:

function renderOrganizationCard(props) {
  return render(
    <MockedProvider addTypename={false} link={link}>
      <BrowserRouter>
        <Provider store={store}>
          <I18nextProvider i18n={i18nForTest}>
            <OrganizationCard {...props} />
          </I18nextProvider>
        </Provider>
      </BrowserRouter>
    </MockedProvider>
  );
}

// In your tests:
test('Component should be rendered properly', async () => {
  renderOrganizationCard(props);
  await waitFor(() => {
    expect(screen.getByRole('heading', { name: props.name })).toBeInTheDocument();
    // Add more specific assertions
  });
});

These changes will make the entire test suite more robust, maintainable, and aligned with best practices in React testing.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 9f0c37b and ba85c24.

Files selected for processing (1)
  • src/components/UserPortal/OrganizationCard/OrganizationCard.test.tsx (1 hunks)
Additional comments not posted (1)
src/components/UserPortal/OrganizationCard/OrganizationCard.test.tsx (1)

Line range hint 1-241: Summary of review

The addition of the new test case for navigating to the organization page and opening the leave confirmation modal is a positive improvement to the test coverage. The test logic is sound, but there are opportunities to enhance its robustness and align it with best practices in React testing.

The suggestions provided aim to:

  1. Improve the reliability of navigation testing
  2. Enhance the specificity of modal content verification
  3. Extend coverage to post-modal actions
  4. Refactor common setup code for better maintainability
  5. Align the entire test suite with modern React testing practices

Implementing these suggestions will result in a more comprehensive, reliable, and maintainable test suite for the OrganizationCard component. Great job on expanding the test coverage, and I look forward to seeing these improvements implemented!

@varshith257
Copy link
Member

@AnshulKahar2729 Can you post a video of changes to speed up reviews? And also increase some test coverage too

@AnshulKahar2729
Copy link
Contributor Author

@AnshulKahar2729 Can you post a video of changes to speed up reviews? And also increase some test coverage too

Sure, I am just working on them.

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: 1

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 108d31e and 3b98e53.

📒 Files selected for processing (2)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.test.tsx (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.tsx
🔇 Additional comments (1)
src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.test.tsx (1)

Line range hint 1-277: LGTM for the rest of the file

The existing test cases cover various scenarios and appear to be well-structured. They include tests for different user roles, UI components, and interactions. The use of mock providers, local storage setup, and cleanup between tests demonstrates good testing practices.

Also applies to: 308-477

@palisadoes
Copy link
Contributor

Please apply the coderabbit.ai suggestions

@AnshulKahar2729
Copy link
Contributor Author

Please apply the coderabbit.ai suggestions

ok, sorry for the delay in between, got busy with some stuff, but I am back to track

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: 6

🧹 Outside diff range and nitpick comments (3)
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (2)

37-37: Remove unnecessary console.log statement.

This console.log statement appears to be used for debugging purposes and should be removed before merging.

-console.log(translations.errorOccured);

81-93: Uncomment or remove the navigation expectation.

The commented-out navigation expectation should either be uncommented if it's a required behavior or removed if it's no longer needed. If the navigation is expected but not currently implemented, consider adding a TODO comment explaining why it's commented out.

 await waitFor(() => {
   expect(toast.success);
   expect(onHide).toHaveBeenCalled();
-  // expect(mockNavigate).toHaveBeenCalledWith('/user/organizations');
+  expect(mockNavigate).toHaveBeenCalledWith('/user/organizations');
 });
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1)

12-16: Rename interface to follow TypeScript naming conventions

The interface InterfaceLeaveConfirmModalProps could be renamed to LeaveConfirmModalProps to align with common TypeScript naming conventions that avoid using prefixes like I or Interface for interfaces.

Apply this diff to rename the interface:

-interface InterfaceLeaveConfirmModalProps {
+interface LeaveConfirmModalProps {
  show: boolean;
  onHide: () => void;
  orgId: string;
}

-const LeaveConfirmModal: FC<InterfaceLeaveConfirmModalProps> = ({
+const LeaveConfirmModal: FC<LeaveConfirmModalProps> = ({
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 3b98e53 and 0654e05.

📒 Files selected for processing (2)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1 hunks)
🧰 Additional context used
🪛 GitHub Check: codecov/patch
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx

[warning] 55-58: src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx#L55-L58
Added lines #L55 - L58 were not covered by tests

🔇 Additional comments (2)
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (1)

39-54: Well-structured helper function for rendering the component.

The renderLeaveConfirmModal function is well-implemented, providing a clean and reusable way to render the component for testing with the necessary providers.

src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1)

62-62: Verify the translation key 'errorOccured'

The translation key 'errorOccured' may contain a typo. The correct spelling is 'errorOccurred' with two 'r's. Please verify the translation key to ensure error messages are displayed correctly.

Run the following script to check for the correct translation key:

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: 2

🧹 Outside diff range and nitpick comments (1)
src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.test.tsx (1)

Line range hint 278-489: Improve overall test coverage for the Leave Organization feature

The addition of two new test cases for the Leave Organization feature is a good start. However, to ensure robust functionality and maintainability, consider the following improvements:

  1. Add tests for the actual process of leaving an organization, including mocking API calls and verifying state changes.
  2. Implement error handling scenarios in the tests, such as failed API requests or unexpected server responses.
  3. Test edge cases, such as attempting to leave an organization when the user is the last admin.
  4. Ensure consistent use of async/await and testing library best practices throughout all tests.
  5. Consider adding integration tests that cover the entire flow from clicking the leave button to completing the process.

To implement these improvements, you might want to:

  1. Create a separate describe block for Leave Organization tests to group related test cases.
  2. Use mock functions for API calls to simulate different scenarios.
  3. Implement a custom render function that sets up the necessary providers and mocks for all tests.
  4. Use test data factories to generate consistent test data across all test cases.

These enhancements will significantly improve the test coverage and reliability of the Leave Organization feature.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 0654e05 and cadf12f.

📒 Files selected for processing (1)
  • src/components/UserPortal/UserSidebarOrg/UserSidebarOrg.test.tsx (2 hunks)
🧰 Additional context used

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: 4

🧹 Outside diff range and nitpick comments (2)
public/locales/zh/translation.json (1)

Line range hint 1192-1206: Remove duplicate translation key.

The new translations for "editButton" and "categoryDetails" look good. However, there's a duplicate key that should be removed.

Please remove the duplicate "actionItemCategoryDetails" key:

     "categoryDetails": "类别详情"
-    "actionItemCategoryDetails": "行动项目类别详细信息",

The remaining translations are appropriate and consistent with the existing style.

public/locales/en/translation.json (1)

216-217: LGTM! Consider reviewing the "withdraw" key usage.

The addition of the "leave" key is appropriate for the new feature allowing users to leave an organization. However, the presence of both "leave" and "withdraw" keys might lead to confusion.

Consider reviewing the usage of the "withdraw" key to ensure it's still necessary. If it's no longer used, it could be removed to maintain clarity and consistency in the translations.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between cadf12f and 022474d.

📒 Files selected for processing (4)
  • public/locales/en/translation.json (7 hunks)
  • public/locales/zh/translation.json (7 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx
🧰 Additional context used
📓 Learnings (1)
public/locales/en/translation.json (2)
Learnt from: Chaitanya1672
PR: PalisadoesFoundation/talawa-admin#2049
File: src/screens/OrganizationActionItems/ActionItemUpdateModal.tsx:112-138
Timestamp: 2024-07-03T07:40:16.065Z
Learning: The `istanbul ignore next` comments in the `ActionItemUpdateModal.tsx` file were added as part of a commit that introduced tests for the `ActionItemUpdateModal` component. Removing these comments and writing tests to cover the previously ignored lines is recommended to ensure code integrity and improve test coverage.
Learnt from: Chaitanya1672
PR: PalisadoesFoundation/talawa-admin#2049
File: src/screens/OrganizationActionItems/ActionItemUpdateModal.tsx:112-138
Timestamp: 2024-10-08T16:13:41.996Z
Learning: The `istanbul ignore next` comments in the `ActionItemUpdateModal.tsx` file were added as part of a commit that introduced tests for the `ActionItemUpdateModal` component. Removing these comments and writing tests to cover the previously ignored lines is recommended to ensure code integrity and improve test coverage.
🔇 Additional comments (11)
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (6)

1-16: LGTM: Imports and interface declaration are well-structured

The imports cover all necessary dependencies, and the InterfaceLeaveConfirmModalProps interface is properly defined with the expected props for the component.


31-46: LGTM: Component declaration and hook initializations are well-implemented

The component is properly declared as a functional component with the correct props. The use of translation hooks facilitates localization, and the useMutation hook is correctly set up with the appropriate refetch queries.


66-87: LGTM: Modal structure and implementation are well-designed

The Modal component is properly structured with a clear header, body, and footer. The use of translations for text content facilitates localization. The modal props and button handlers are correctly implemented, providing a good user experience.


91-91: LGTM: Component export is correct

The LeaveConfirmModal component is properly exported as the default export, following common React practices.


1-91: Overall assessment: Well-implemented component with minor improvements needed

The LeaveConfirmModal component successfully implements the functionality for users to leave an organization, aligning with the PR objectives. The component is well-structured, uses appropriate React hooks and GraphQL mutations, and implements localization.

Key strengths:

  1. Clear component structure and prop definitions
  2. Proper use of GraphQL mutations and refetch queries
  3. Implementation of localization using react-i18next

Areas for improvement:

  1. Enhanced error handling in the leaveOrg function
  2. Keeping the modal open on error for better user experience
  3. Increasing test coverage, especially for the success path

These improvements will further enhance the robustness and user-friendliness of the component. Once addressed, this component will be a solid addition to the feature set, allowing users to leave organizations smoothly.


48-65: 🛠️ Refactor suggestion

⚠️ Potential issue

Improve error handling and user experience in leaveOrg function

While the function correctly executes the leave organization mutation, there are several areas for improvement:

  1. Error handling could be more specific, providing different messages based on the error type.
  2. Consider keeping the modal open on error to allow the user to retry.
  3. Increase test coverage for the success path (lines 55-58).

Here's a suggested improvement:

async function leaveOrg(): Promise<void> {
  try {
    await leaveOrganization({
      variables: {
        organizationId: orgId,
      },
    });
    onHide();
    toast.success(t('orgLeft'));
    navigate('/user/organizations');
  } catch (error: unknown) {
    if (error instanceof ApolloError) {
      toast.error(t('apolloError', { message: error.message }));
    } else if (error instanceof Error) {
      toast.error(t('genericError', { message: error.message }));
    } else {
      toast.error(t('unknownError'));
    }
    // Note: We're not calling onHide() here to keep the modal open on error
  }
}

Also, ensure that you have appropriate translations for these error messages.

To verify the test coverage, run the following command:

public/locales/zh/translation.json (1)

770-770: LGTM: New translation for managing custom fields.

The added translation for "manageCustomFields" is appropriate and consistent with the style of other translations in the file.

public/locales/en/translation.json (4)

770-770: LGTM! New key for managing custom fields.

The addition of the "manageCustomFields" key with the value "Manage Custom Fields" is appropriate and consistent with the existing terminology.


981-981: LGTM! New key for leaving organization.

The addition of the "leave" key with the value "Leave Organization" is appropriate and aligns with the new feature allowing users to leave an organization.


1321-1326: LGTM! Comprehensive translations for leaving organization process.

The new "orgLeave" section provides clear and informative translations for the process of leaving an organization. It covers confirmation, heading, description, error handling, and success message.


413-413: LGTM! Verify UI impact of pluralized "Create Action Items".

The change from singular to plural form for "createActionItem" is appropriate if the functionality now allows creating multiple action items at once.

Please run the following script to check for potential UI inconsistencies:

✅ Verification successful

LGTM!

The pluralized "Create Action Items" is correctly implemented in the UI components. The singular form remains only in test descriptions, which does not impact the user interface.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Find occurrences of "Create Action Item" in the codebase
# Expect: No occurrences of the old singular form

rg --type-add 'frontend:*.{js,jsx,ts,tsx}' -t frontend 'Create Action Item'

Length of output: 284

public/locales/zh/translation.json Show resolved Hide resolved
public/locales/zh/translation.json Show resolved Hide resolved
public/locales/zh/translation.json Show resolved Hide resolved
public/locales/en/translation.json Outdated Show resolved Hide resolved
@AnshulKahar2729
Copy link
Contributor Author

@palisadoes PTAL, changed the code according to the relevant reviews.

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

🧹 Outside diff range and nitpick comments (3)
public/locales/en/translation.json (2)

216-217: Update "leave" and "withdraw" translations

The changes in the "users" section look good. However, there's a minor inconsistency:

  1. The "leave" key (line 216) has been added with the value "Leave".
  2. The "withdraw" key (line 217) still exists with the value "Withdraw".

Since "leave" has been introduced, it might be more consistent to remove the "withdraw" key if it's no longer used in the application.

Consider applying this change:

  "leave": "Leave",
- "withdraw": "Withdraw",

This will help maintain consistency and remove potentially unused translations.


1322-1327: New "orgLeave" section added

The addition of the "orgLeave" section is a good improvement. It provides clear and informative messages for the organization leaving process. The translations cover various scenarios, including confirmation, error handling, and success messages.

However, there's a minor formatting inconsistency in the "confirmation" key:

Consider removing the trailing space in the "confirmation" value:

- "confirmation": "Are you sure you want to leave the organization? ",
+ "confirmation": "Are you sure you want to leave the organization?",

This will ensure consistent formatting across all translation strings.

public/locales/fr/translation.json (1)

1322-1327: New section added for organization leave process

A new "orgLeave" section has been added with translations for the process of leaving an organization. The translations are generally good, but there are a few minor suggestions for improvement:

  1. The "confirmation" and "heading" translations are very similar. Consider differentiating them slightly.
  2. The "description" translation is quite long and might benefit from being broken into shorter sentences for better readability.
  3. The "errorOccured" key has a typo (should be "errorOccurred").

Consider applying these suggestions:

   "orgLeave": {
-    "confirmation": "Etes-vous sûr de vouloir quitter l'organisation ? ",
+    "confirmation": "Confirmation de départ",
     "heading": "Quitter l'organisation ?",
-    "description": "Etes-vous sûr de vouloir quitter l'organisation ? Cette action ne peut pas être annulée. Si l'organisation nécessite une approbation, vous ne pourrez pas la rejoindre sans cette approbation. Toutes les données ou autorisations associées peuvent également être perdues.",
+    "description": "Êtes-vous sûr de vouloir quitter l'organisation ? Cette action ne peut pas être annulée. Si l'organisation nécessite une approbation, vous ne pourrez pas la rejoindre sans cette approbation. Toutes les données ou autorisations associées peuvent être perdues.",
-    "errorOccured": "Une erreur s'est produite. Veuillez réessayer plus tard.",
+    "errorOccurred": "Une erreur s'est produite. Veuillez réessayer plus tard.",
     "orgLeft": "Vous avez quitté l'organisation."
   }

These changes improve clarity, correct a typo, and maintain consistency with French punctuation (adding a space before the question mark).

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 022474d and 41e2b74.

📒 Files selected for processing (5)
  • public/locales/en/translation.json (7 hunks)
  • public/locales/fr/translation.json (7 hunks)
  • public/locales/hi/translation.json (7 hunks)
  • public/locales/sp/translation.json (8 hunks)
  • public/locales/zh/translation.json (7 hunks)
🧰 Additional context used
📓 Learnings (1)
public/locales/en/translation.json (2)
Learnt from: Chaitanya1672
PR: PalisadoesFoundation/talawa-admin#2049
File: src/screens/OrganizationActionItems/ActionItemUpdateModal.tsx:112-138
Timestamp: 2024-07-03T07:40:16.065Z
Learning: The `istanbul ignore next` comments in the `ActionItemUpdateModal.tsx` file were added as part of a commit that introduced tests for the `ActionItemUpdateModal` component. Removing these comments and writing tests to cover the previously ignored lines is recommended to ensure code integrity and improve test coverage.
Learnt from: Chaitanya1672
PR: PalisadoesFoundation/talawa-admin#2049
File: src/screens/OrganizationActionItems/ActionItemUpdateModal.tsx:112-138
Timestamp: 2024-10-08T16:13:41.996Z
Learning: The `istanbul ignore next` comments in the `ActionItemUpdateModal.tsx` file were added as part of a commit that introduced tests for the `ActionItemUpdateModal` component. Removing these comments and writing tests to cover the previously ignored lines is recommended to ensure code integrity and improve test coverage.
🔇 Additional comments (17)
public/locales/zh/translation.json (3)

411-411: LGTM: New translation for "completed" status.

The addition of the "completed" key with the translation "已完成" is correct and appropriate. This enhances the clarity of action item statuses in the Chinese localization.


236-237: ⚠️ Potential issue

Fix spelling error in key name.

The key "errorOccured" is misspelled. It should be "errorOccurred" (with two 'r's).

Please update the key name as follows:

-    "errorOccured": "发生错误",
+    "errorOccurred": "发生错误",

The translation for "leave" looks good and is consistent with its usage in other parts of the application.

Likely invalid or redundant comment.


1322-1327: ⚠️ Potential issue

Fix spelling error in "errorOccured" key.

The new translations for the "orgLeave" section are appropriate and provide a complete set of messages for the organization leaving process. However, there's a spelling error in one of the keys.

Please update the "errorOccured" key to "errorOccurred":

-    "errorOccured": "发生错误。请稍后再试。",
+    "errorOccurred": "发生错误。请稍后再试。",

The remaining translations in this section look good and are consistent with the style of the rest of the file.

Likely invalid or redundant comment.

public/locales/en/translation.json (1)

Line range hint 1-1327: Overall assessment of translation changes

The changes to the translation file are generally positive, adding support for the new "leave organization" feature. The new translations are clear and cover various scenarios, including confirmation, error handling, and success messages.

There are a couple of minor points to consider:

  1. The coexistence of "leave" and "withdraw" keys in the "users" section. Consider removing the "withdraw" key if it's no longer used.
  2. A small formatting inconsistency (trailing space) in the new "orgLeave" section.

Addressing these minor issues will further improve the consistency and maintainability of the translation file.

public/locales/hi/translation.json (5)

219-219: New translation added for "leave" action.

The addition of "leave": "छोड़ो" is appropriate and maintains the JSON structure.


977-977: Specific translation added for leaving an organization.

The addition of "leave": "संगठन छोड़ें" is appropriate and provides a more context-specific translation for leaving an organization.


1321-1321: New translation added for user pledges title.

The addition of "title": "मेरी प्रतिज्ञाएँ" is appropriate and maintains the JSON structure.


1322-1327: New translations added for organization leave functionality.

A new "orgLeave" object has been added with translations for:

  • Confirmation message
  • Heading
  • Description of the action and its consequences
  • Error message
  • Success message

These additions align with the feature described in the PR objectives for allowing users to leave an organization.


1327-1328: Previous JSON syntax error resolved.

The extra closing brace at the end of the file, which was reported in a previous review, has been removed. The JSON structure is now valid.

public/locales/fr/translation.json (2)

216-216: New translation added for leaving an organization

The translation for the "leave" key has been added to the "userSidebarOrg" section. The French translation "partir" is provided for "leave".

However, I suggest a minor improvement to make the translation more specific:

-    "leave": "partir",
+    "leave": "Quitter l'organisation",

This change makes the translation more explicit and consistent with the context of leaving an organization.


Line range hint 1-1327: Overall assessment of translation changes

The changes to this French translation file appropriately add new translations for the feature of leaving an organization. The additions are generally well-translated and fit the context of the application. The suggestions provided in the previous comments will help refine the translations further, improving clarity and consistency.

These changes effectively support the new feature for allowing users to leave an organization, as mentioned in the PR objectives. The translations align well with the feature's requirements and provide a good user experience for French-speaking users.

public/locales/sp/translation.json (6)

236-236: New translation added correctly.

The new translation for "leave" as "Dejar" is accurate and consistent with the context of leaving an organization.


763-771: Comprehensive additions to organization settings translations.

The new translations for various aspects of organization settings are accurate, contextually appropriate, and consistent with the terminology used in other parts of the application. They provide a good coverage of different setting options.


983-983: Clear and specific translation added.

The new translation "Dejar la organización" for "leave" is more specific and clearer than the previous general "Dejar". It accurately conveys the action of leaving an organization.


1091-1093: Improved clarity for donation amount instructions.

The new translations provide clear guidance for entering donation amounts. The modified "donationOutOfRange" message now includes placeholders for minimum and maximum values, making it more informative. These changes enhance the user experience when making donations.


1323-1328: Comprehensive coverage of organization leaving process.

The new "orgLeave" section provides thorough translations for the entire process of leaving an organization. It includes a confirmation prompt, a detailed description of potential consequences, error handling, and a success message. These translations will effectively guide users through the process of leaving an organization.


Line range hint 1-1328: Overall excellent improvements to Spanish localization.

The changes in this file significantly enhance the Spanish localization of the application. The new translations and modifications are consistent, grammatically correct, and contextually appropriate. They particularly improve areas related to organization management, donation processes, and user interactions. These updates will contribute to a better user experience for Spanish-speaking users.

Copy link
Member

@noman2002 noman2002 left a comment

Choose a reason for hiding this comment

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

@AnshulKahar2729 Please make the suggested changes and resolve conflicting files.

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: 2

🧹 Outside diff range and nitpick comments (1)
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1)

80-88: Adjust button variants to match standard UI conventions

The "Cancel" button is using the 'danger' variant, which typically signifies a destructive action. It would be more intuitive to use a neutral variant like 'secondary' for the "Cancel" button and reserve the 'danger' variant for the "Confirm" button, as leaving an organization is the destructive action.

Apply this diff to adjust the button variants:

 <Modal.Footer className={styles.leaveConfirmModalFooter}>
-  <Button variant="danger" onClick={onHide}>
+  <Button variant="secondary" onClick={onHide}>
     {tCommon('cancel')}
   </Button>
   <Button
     data-testid="leave-confirm-modal-confirm-btn"
+    variant="danger"
     onClick={leaveOrg}
   >
     {tCommon('confirm')}
   </Button>
 </Modal.Footer>

This change improves the user experience by aligning button styles with common design patterns.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 41e2b74 and 0af89cc.

📒 Files selected for processing (2)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (1 hunks)
  • src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1 hunks)
🧰 Additional context used
🔇 Additional comments (8)
src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.test.tsx (7)

1-46: Imports, mocks, and utility functions look good.

The imports, mocks for react-toastify and react-router-dom, the wait utility function, and the translations setup are all well-structured and appropriate for testing the LeaveConfirmModal component.


48-65: Well-structured renderLeaveConfirmModal function.

The renderLeaveConfirmModal function provides a clean and reusable way to render the component for testing, including all necessary providers (MockedProvider, BrowserRouter, and I18nextProvider).


128-141: Mock validation tests are well-structured.

The test cases for validating the LEAVE_ORGANIZATION mock are comprehensive and well-structured. They ensure the correctness of the mock setup by checking the query, variables, and result. This is a good practice for maintaining the integrity of your test data.


1-141: Overall, the test suite is well-structured and comprehensive.

The LeaveConfirmModal.test.tsx file provides a solid foundation for testing the LeaveConfirmModal component. It covers important scenarios and follows good testing practices. The suggested improvements, such as extracting mocks, adding more test cases, and ensuring consistency in error handling, will further enhance the robustness and maintainability of the test suite. Great job on creating a thorough set of tests for this component!


67-79: 🛠️ Refactor suggestion

Consider extracting mocks to a separate file.

While the mocks are correctly set up, extracting them to a separate file or constant could improve maintainability and reusability, as suggested in a previous review. This would allow easier management of different mock scenarios and reduce clutter in the test file.

Example:

// mocks/leaveOrganizationMocks.ts
export const successfulLeaveMock = [
  {
    request: {
      query: LEAVE_ORGANIZATION,
      variables: { organizationId: '6437904485008f171cf29924' },
    },
    result: {
      data: {
        leaveOrganization: true,
      },
    },
  },
];

// In the test file
import { successfulLeaveMock } from './mocks/leaveOrganizationMocks';

107-126: ⚠️ Potential issue

Align error messages for consistency in error handling test.

To ensure consistency in the error handling test case, consider one of the following options:

  1. Update the mock error message to match the expected one:
-        error: new Error(translations.errorOccured),
+        error: new Error('errorOccured'),
  1. Or, if 'errorOccured' is a translation key, update the assertion to use a more generic expectation:
-      expect(toast.error).toHaveBeenCalledWith(translations.errorOccured);
+      expect(toast.error).toHaveBeenCalled();

Choose the option that best aligns with your error handling strategy and i18n implementation.


81-126: 🛠️ Refactor suggestion

Consider implementing additional test cases for improved coverage.

While the current test suite covers the main scenarios, implementing the following additional test cases would further improve the coverage and robustness of your tests:

  1. Test that the modal renders correctly with the expected content when show prop is true.
  2. Test that the modal doesn't render when show prop is false.
  3. Test the behavior when the orgId prop is not provided or is invalid.
  4. Test for any loading states or disabled button states during the mutation execution.

These additional test cases will help ensure the component behaves correctly under various conditions and edge cases.

src/components/UserPortal/UserSidebarOrg/LeaveConfirmModal.tsx (1)

5-6: Ensure consistent casing in import paths for cross-platform compatibility

The import paths use 'GraphQl', as in:

import { LEAVE_ORGANIZATION } from 'GraphQl/Mutations/OrganizationMutations';
import { USER_ORGANIZATION_CONNECTION } from 'GraphQl/Queries/OrganizationQueries';

To prevent potential issues on case-sensitive file systems (e.g., Linux), ensure that the directory names in your import statements match the actual folder names exactly. If the folder is named GraphQL, graphql, or Graphql, please adjust the import statements accordingly.

Run the following script to verify the actual casing of the directories:

✅ Verification successful

Consistent import path casing confirmed.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the casing of the 'GraphQl' directory in the import paths.

# Test: List directories matching 'GraphQl' in a case-insensitive manner.
# Expect: The output shows the actual directory name(s) allowing you to confirm the correct casing.

fd -td -i 'GraphQl' | sort

Length of output: 39

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: 3

🧹 Outside diff range and nitpick comments (7)
public/locales/sp/common.json (1)

Line range hint 1-88: Consider improving overall Spanish localization

While the new addition is correct, I noticed some inconsistencies in the Spanish translations:

  1. Some terms are still in English, for example:

    • "Dashboard" could be "Tablero de control" or "Panel"
    • "Plugins" could be "Complementos" (which is used elsewhere in the file)
    • "Settings" is translated in one place but not in another
  2. Mixing languages might confuse Spanish-speaking users. Consider translating all terms to maintain consistency.

Would you like assistance in generating a more comprehensive Spanish localization for these terms?

public/locales/hi/common.json (1)

Line range hint 1-89: Consider adding translations for "leave organization" related phrases.

While the addition of the "confirm" translation is good, the PR objectives mention adding functionality for users to leave an organization. Consider adding translations for phrases specifically related to this feature, such as:

  • "Leave Organization"
  • "Are you sure you want to leave this organization?"
  • "You have successfully left the organization"

Would you like assistance in drafting these additional translations or creating a GitHub issue to track this task?

public/locales/fr/common.json (1)

86-86: LGTM! New translation added correctly.

The new key-value pair "confirm": "Confirmer" has been added correctly. The translation is accurate, and it maintains consistency with the existing style of the file.

However, I have a small suggestion to improve consistency:

Consider capitalizing the first letter of the translation to match the style of other similar entries (e.g., "Annuler", "Fermer"). Here's the suggested change:

-  "confirm": "Confirmer",
+  "confirm": "Confirmer",

This change would make the capitalization consistent with other action-related translations in the file.

public/locales/en/translation.json (2)

1325-1325: Consider populating or removing the empty "userPledges" section.

An empty "userPledges" section has been added. If this is a preparation for future content, consider adding a TODO comment. If it's not immediately needed, it might be better to remove it to keep the file clean.

If you plan to add content soon, consider adding a TODO comment:

  "userPledges": {
+    "// TODO: Add localization strings for user pledges"
  }

Alternatively, if it's not needed right now, you can remove the empty section.


1326-1331: LGTM! Minor grammatical suggestion.

The new "orgLeave" section is well-structured and provides comprehensive localization for the leave organization feature. This aligns perfectly with the PR objective.

Consider a minor grammatical correction in the "errorOccured" key:

-    "errorOccured": "An error occurred. Please try again later.",
+    "errorOccurred": "An error occurred. Please try again later.",
public/locales/sp/translation.json (2)

236-237: Consider clarifying the "noOrgError" translation

The translation for "leave" is correct and appropriate. However, the translation for "noOrgError" could be more specific to better convey its meaning.

Consider changing "Error sin organización" to "Error: No se encontró la organización" or "Error: Organización no encontrada" to be more explicit about the nature of the error.


Line range hint 768-775: Address inconsistency in formality for update instructions

The translations are generally correct, but there's an inconsistency in the level of formality used:

  • "updateYourDetails" uses the informal "Actualiza" (line 769)
  • "updateYourPassword" uses the formal "Actualice" (line 770)

To maintain consistency, consider using the same level of formality for both phrases. Suggested corrections:

-    "updateYourDetails": "Actualiza tus datos",
-    "updateYourPassword": "Actualice su contraseña",
+    "updateYourDetails": "Actualice sus datos",
+    "updateYourPassword": "Actualice su contraseña",

Alternatively, if an informal tone is preferred throughout the application:

-    "updateYourDetails": "Actualiza tus datos",
-    "updateYourPassword": "Actualice su contraseña",
+    "updateYourDetails": "Actualiza tus datos",
+    "updateYourPassword": "Actualiza tu contraseña",
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 0af89cc and 3f492ff.

📒 Files selected for processing (11)
  • public/locales/en/common.json (1 hunks)
  • public/locales/en/translation.json (4 hunks)
  • public/locales/fr/common.json (1 hunks)
  • public/locales/fr/translation.json (4 hunks)
  • public/locales/hi/common.json (1 hunks)
  • public/locales/hi/translation.json (4 hunks)
  • public/locales/sp/common.json (1 hunks)
  • public/locales/sp/translation.json (6 hunks)
  • public/locales/zh/common.json (1 hunks)
  • public/locales/zh/translation.json (5 hunks)
  • src/GraphQl/Mutations/mutations.ts (1 hunks)
🧰 Additional context used
🔇 Additional comments (28)
public/locales/zh/common.json (2)

86-86: LGTM: New translation added correctly.

The new translation for "confirm" has been added correctly:

  • The key "confirm" is appropriate for the context.
  • The Chinese translation "确认" is accurate and commonly used for "confirm".
  • The addition is consistent with the style of other entries in the file.

This change aligns with the PR objectives by supporting the new feature that allows users to leave an organization, which likely requires a confirmation step.


Line range hint 1-89: Verify JSON structure integrity.

The overall structure of the JSON file appears correct. However, let's verify its integrity programmatically.

public/locales/en/common.json (1)

85-85: LGTM! Verify usage of the new "confirm" localization string.

The addition of the "confirm" localization string is appropriate and consistent with the existing entries. This aligns well with the PR objective of adding a feature for users to leave the organization, as a confirmation step is often necessary for such actions.

To ensure this new string is being used correctly in the production code, please run the following script:

If the script doesn't return any results from production code (excluding test files), consider implementing the confirmation step in the user interface for leaving the organization.

public/locales/sp/common.json (1)

86-86: LGTM: New translation added correctly

The new translation "confirm": "Confirmar" has been added correctly to the Spanish localization file. This addition:

  1. Is grammatically correct in Spanish.
  2. Maintains consistency with the existing translation style.
  3. Doesn't break the JSON structure.
  4. Aligns with the PR objectives by supporting the new "leave organization" feature, which likely requires a confirmation step.
public/locales/hi/common.json (1)

86-86: LGTM! New translation added correctly.

The new key-value pair "confirm": "पुष्टि करें" has been added correctly. This translation for "confirm" in Hindi is accurate and consistent with the rest of the file's content and structure.

To ensure consistency across other language files, let's check if similar changes have been made:

✅ Verification successful

Translation Addition Verified

The "confirm": "पुष्टि करें" entry in public/locales/hi/common.json aligns correctly with corresponding entries in other language files, ensuring consistency across translations.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for 'confirm' key in other language files
# Expected: Similar 'confirm' entries in other language files

fd -e json . public/locales -x grep -H '"confirm"' {} \;

Length of output: 334

public/locales/fr/common.json (1)

86-86: Verify completeness of translations for the new feature.

The addition of the "confirm" translation is likely related to the new "leave organization" feature mentioned in the PR objectives. To ensure a complete user experience in French, please verify if any other related translations are needed for this feature.

For example, you might need translations for phrases like:

  • "Leave Organization"
  • "Are you sure you want to leave the organization?"
  • "You have successfully left the organization."

If these are needed, please add them to this file. If they exist elsewhere or are not required, you can disregard this comment.

To help verify this, you can run the following script to search for related keys in other locale files:

This will help identify if similar keys exist in other language files and ensure consistency across translations.

✅ Verification successful

Translations are complete and consistent for the new feature.

All related translation keys for the "leave organization" feature are present and properly localized in the French locale.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Search for related keys in other locale files

# Test: Search for keys related to leaving an organization
echo "Searching for related keys in other locale files:"
rg --type json 'leave|organization|confirm' public/locales

Length of output: 14463

src/GraphQl/Mutations/mutations.ts (1)

Line range hint 731-738: LGTM: Export list updated correctly

The addition of LEAVE_ORGANIZATION to the export list is consistent with the new feature and is correctly placed among other organization-related mutations.

public/locales/zh/translation.json (4)

986-987: LGTM: New translations for user sidebar organization actions.

The new translations for "menu" and "leave" in the user sidebar for organization-related actions are appropriate and consistent with their usage in other parts of the application.


1210-1211: LGTM: New translations for action item category management.

The new translations for "editButton" and "categoryDetails" in the organization action item categories section are appropriate and consistent with the existing style and terminology used in the application.


236-237: ⚠️ Potential issue

Fix spelling error in "errorOccured" key and approve new translations.

The new translations for error handling and leaving an organization are appropriate. However, there's a spelling error in one of the keys.

Please update the "errorOccured" key to "errorOccurred":

-    "errorOccured": "发生错误",
+    "errorOccurred": "发生错误",

The translation for "leave" looks good and is consistent with its usage in other parts of the application.

Likely invalid or redundant comment.


1326-1331: ⚠️ Potential issue

Approve new "orgLeave" translations and fix spelling error.

The new translations for the "orgLeave" section are appropriate and provide a complete set of messages for the organization leaving process. However, there's a spelling error in one of the keys that needs to be addressed.

  1. Please update the "errorOccured" key to "errorOccurred":
-    "errorOccured": "发生错误。请稍后再试。",
+    "errorOccurred": "发生错误。请稍后再试。",
  1. The remaining translations in this section look good and are consistent with the style of the rest of the file.

To ensure that this new feature is properly implemented, please run the following verification script:

public/locales/en/translation.json (3)

986-986: LGTM! Consistent with the new feature.

The addition of the "leave" key with the value "Leave Organization" in the userSidebarOrg section is consistent with the new feature and provides clear context for the action.


Line range hint 1-1331: Overall, good additions for the new feature. Some minor improvements suggested.

The changes in this file effectively support the new feature allowing users to leave an organization. The localization strings are comprehensive and well-structured. A few minor improvements have been suggested:

  1. Verify if the "withdraw" key is still needed.
  2. Update placeholder values for "editButton" and "categoryDetails" in the orgActionItemCategories section.
  3. Consider populating or removing the empty "userPledges" section.
  4. Minor grammatical correction in the "orgLeave" section.

These small adjustments will further enhance the quality and consistency of the localization.


216-217: LGTM! Consider reviewing the "withdraw" key.

The addition of the "leave" key aligns well with the new feature for users to leave an organization. However, the "withdraw" key is still present.

Please verify if the "withdraw" key is still needed or if it can be removed:

✅ Verification successful

Verification Complete: "withdraw" Key is Still in Use

The "withdraw" key is actively used in the following files:

  • src/components/UserPortal/OrganizationCard/OrganizationCard.tsx
  • src/components/UserPortal/OrganizationCard/OrganizationCard.test.tsx

Please ensure that the "withdraw" key remains necessary before considering its removal.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for usage of "withdraw" key in the codebase
rg "withdraw" --type ts --type tsx

Length of output: 62


Script:

#!/bin/bash
# Define 'tsx' as a file type and search for the "withdraw" key in both .ts and .tsx files
rg --type-add 'tsx:*.tsx' "withdraw" --type ts --type tsx

Length of output: 1313

public/locales/hi/translation.json (4)

219-219: New translation added correctly.

The new key "leave" with its Hindi translation "छोड़ो" has been appropriately added. The translation is concise and accurately represents the English meaning.


981-981: Appropriate context-specific translation added.

The new key "leave" with the translation "संगठन छोड़ें" (leave organization) has been correctly added to the "userSidebarOrg" section. This translation is more specific and appropriate for the sidebar context, clearly indicating the action of leaving an organization.


1326-1331: Comprehensive translations added for organization leaving process.

The new "orgLeave" object contains well-crafted translations for the process of leaving an organization. The translations are clear, detailed, and maintain an appropriate tone. Particularly noteworthy is the comprehensive description that explains the consequences of leaving an organization, which will help users make informed decisions.


Line range hint 1-1331: Well-integrated translations for new feature.

The additions to this translation file are well-structured and consistent with the existing content. The new translations provide comprehensive language support for the feature of leaving an organization, covering various aspects such as confirmation, consequences, and status messages. These changes enhance the Hindi localization of the application, ensuring users have clear and detailed information when considering leaving an organization.

public/locales/fr/translation.json (5)

216-216: New translation added for "leave" action

The translation for "leave" has been added under the "userSidebarOrg" section. This is a good addition as it provides a French translation for the action of leaving an organization.


Line range hint 981-987: New translations added for organization-related actions

Several new translations have been added under the "userSidebarOrg" section, including "leave", "users", "requests", "logout", "settings", "chat", and "menu". These additions improve the French localization of the user sidebar for organization-related actions.


1210-1211: New translations added for action item categories

Two new translations have been added under the "orgActionItemCategories" section: "editButton" and "categoryDetails". These additions enhance the French localization for managing action item categories.


1325-1331: New translations added for leaving an organization

A new section "orgLeave" has been added with translations for the process of leaving an organization. This includes confirmation messages, headings, descriptions, and error messages. These additions provide a complete set of French translations for the organization leaving process.


Line range hint 1-1331: Overall assessment of French translations

The changes to this file consist of several new translations added to various sections of the French localization file. These additions cover important user actions such as leaving an organization, managing action item categories, and various sidebar options. All new translations appear to be grammatically correct and consistent with the existing style of the file.

Key points:

  1. New translations for "leave" action added in multiple contexts.
  2. Additional translations for user sidebar options in the organization context.
  3. New translations for action item category management.
  4. A complete set of translations for the process of leaving an organization.

These changes enhance the French localization of the application, providing a more comprehensive user experience for French-speaking users.

public/locales/sp/translation.json (5)

987-987: LGTM: Consistent translation for "leave"

The translation "Dejar la organización" for the "leave" key is correct and consistent with the earlier usage in the "users" section.


1095-1097: LGTM: Clear and correct translations for donation-related messages

The updated translations for "invalidAmount" and "donationAmountDescription" are clear and correct. The new "donationOutOfRange" translation is well-structured and correctly uses placeholders for dynamic content.


1207-1212: LGTM: Consistent and clear translations for action item categories

The translations in this section are correct and maintain consistency in terminology, particularly with the use of "Ítem de Acción". The new "categoryDetails" translation is also appropriate.


1326-1326: LGTM: Correct translation for user pledges title

The translation "Mis Promesas" for the "title" key in the "userPledges" section is correct and appropriate for the context.


Line range hint 1-1332: Overall assessment of Spanish translations

The Spanish translations in this file are generally of good quality and accurately convey the intended meanings. The main points of improvement are:

  1. Maintaining consistency in the level of formality used (tú vs. usted forms).
  2. Addressing a few minor issues such as the typo in "errorOccured".
  3. Considering more specific translations for error messages (e.g., "noOrgError").

These small adjustments will enhance the overall quality and consistency of the Spanish localization.

@@ -728,6 +728,7 @@ export {
CREATE_DIRECT_CHAT,
CREATE_SAMPLE_ORGANIZATION_MUTATION,
JOIN_PUBLIC_ORGANIZATION,
LEAVE_ORGANIZATION,
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Missing implementation for LEAVE_ORGANIZATION mutation

The LEAVE_ORGANIZATION mutation is being exported, but its implementation is not visible in the provided code. This could lead to runtime errors when attempting to use the mutation.

Please add the implementation for the LEAVE_ORGANIZATION mutation before exporting it. The mutation should typically follow this structure:

export const LEAVE_ORGANIZATION = gql`
  mutation LeaveOrganization($orgId: ID!) {
    leaveOrganization(organizationId: $orgId) {
      _id
    }
  }
`;

Ensure that the mutation name and parameters match the backend GraphQL schema.

Comment on lines +1210 to +1211
"editButton": "editButton",
"categoryDetails": "categoryDetails"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Update placeholder values for new keys.

The addition of "editButton" and "categoryDetails" is appropriate. However, they have placeholder values that need to be replaced with proper translations.

Please update the following keys with appropriate translations:

-    "editButton": "editButton",
+    "editButton": "Edit",
-    "categoryDetails": "categoryDetails"
+    "categoryDetails": "Category Details"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"editButton": "editButton",
"categoryDetails": "categoryDetails"
"editButton": "Edit",
"categoryDetails": "Category Details"

Comment on lines +1328 to +1332
"confirmation": "¿Estás segura de que quieres dejar la organización?",
"heading": "¿Dejar la organización?",
"description": "¿Estás seguro de que quieres dejar la organización? Esta acción no se puede deshacer. Si la organización requiere aprobación, no podrás volver a unirte sin ella. También se pueden perder todos los datos o permisos relacionados.",
"errorOccured": "Se produjo un error. Inténtelo de nuevo más tarde.",
"orgLeft": "Has abandonado la organización."
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Address typo and formality inconsistency in "orgLeave" section

The translations in the new "orgLeave" section are generally correct, but there are two issues to address:

  1. There's a typo in the key "errorOccured" (should be "errorOccurred").
  2. There's an inconsistency in the level of formality used across the translations.

Please make the following corrections:

  1. Fix the typo in the key name:
-    "errorOccured": "Se produjo un error. Inténtelo de nuevo más tarde.",
+    "errorOccurred": "Se produjo un error. Inténtelo de nuevo más tarde.",
  1. Maintain consistent formality (using informal "tú" form throughout):
-    "confirmation": "¿Estás segura de que quieres dejar la organización?",
+    "confirmation": "¿Estás seguro de que quieres dejar la organización?",
     "heading": "¿Dejar la organización?",
     "description": "¿Estás seguro de que quieres dejar la organización? Esta acción no se puede deshacer. Si la organización requiere aprobación, no podrás volver a unirte sin ella. También se pueden perder todos los datos o permisos relacionados.",
-    "errorOccurred": "Se produjo un error. Inténtelo de nuevo más tarde.",
+    "errorOccurred": "Se produjo un error. Inténtalo de nuevo más tarde.",
     "orgLeft": "Has abandonado la organización."

Note: If formal language is preferred, you should update all translations to use the formal "usted" form consistently.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"confirmation": "¿Estás segura de que quieres dejar la organización?",
"heading": "¿Dejar la organización?",
"description": "¿Estás seguro de que quieres dejar la organización? Esta acción no se puede deshacer. Si la organización requiere aprobación, no podrás volver a unirte sin ella. También se pueden perder todos los datos o permisos relacionados.",
"errorOccured": "Se produjo un error. Inténtelo de nuevo más tarde.",
"orgLeft": "Has abandonado la organización."
"confirmation": "¿Estás seguro de que quieres dejar la organización?",
"heading": "¿Dejar la organización?",
"description": "¿Estás seguro de que quieres dejar la organización? Esta acción no se puede deshacer. Si la organización requiere aprobación, no podrás volver a unirte sin ella. También se pueden perder todos los datos o permisos relacionados.",
"errorOccurred": "Se produjo un error. Inténtalo de nuevo más tarde.",
"orgLeft": "Has abandonado la organización."

Copy link
Contributor

@palisadoes palisadoes left a comment

Choose a reason for hiding this comment

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

  1. Please add a video showing the new functionality in action
  2. Please fix the conflicting files

@palisadoes
Copy link
Contributor

Please also make sure that code rabbit approves your changes

@AnshulKahar2729
Copy link
Contributor Author

I am closing this PR, as this was very old. I am getting stuck in some test cases again nd again. I'll try to contribute to some different issues. Sorry for the inconvenience.

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

Successfully merging this pull request may close these issues.

4 participants