Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix: avatar selection confirmation #849

Open
wants to merge 9 commits into
base: testnet
Choose a base branch
from

Conversation

Marchand-Nicolas
Copy link
Collaborator

@Marchand-Nicolas Marchand-Nicolas commented Jun 29, 2024

close: #824

Summary by CodeRabbit

  • New Features

    • Introduced a back navigation function for profile picture updates.
  • Improvements

    • Simplified profile picture update process for better user experience.
  • Dependencies

    • Updated @starknet-react/chains to version 0.1.7.
    • Updated @starknet-react/core to version 3.0.0-beta.0.

Copy link

vercel bot commented Jun 29, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
app-starknet-id ❌ Failed (Inspect) Jun 30, 2024 10:15am
sepolia-app-starknet-id ❌ Failed (Inspect) Jun 30, 2024 10:15am

Copy link
Contributor

coderabbitai bot commented Jun 29, 2024

Walkthrough

The recent changes across multiple files primarily involve updating dependencies, modifying imports, and refactoring functions to streamline the user flow when updating a profile picture. Notable updates include integrating useAccount from @starknet-react/core, replacing the existing useContractWrite import, and adding a new confirm function to handle account execution and automatic modal navigation post-transaction confirmation.

Changes

Files/Paths Change Summary
components/UI/modalProfilePic.tsx Replaced useContractWrite import with useAccount, removed execute and updateData variables, added confirm function.
components/identities/updateProfilePic.tsx Added back prop to UpdateProfilePic component.
package.json Updated @starknet-react/chains to 0.1.7, @starknet-react/core to 3.0.0-beta.0.

Assessment against linked issues

Objective Addressed Explanation
After choosing an avatar, the modal is not closed automatically (#824).

Tip

Early access features: enabled

We are currently testing the following features in early access:

  • OpenAI gpt-4o model for code reviews and chat: OpenAI claims that this model is better at understanding and generating code than the previous models. We seek your feedback over the next few weeks before making it generally available.

Note:

  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.
  • Please join our Discord Community to provide feedback and report issues.
  • OSS projects are always opted into early access features.

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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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 as 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.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

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
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 (3)
components/UI/modalProfilePic.tsx (3)

Line range hint 86-86: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behavior that you want inside a React application. Allowed button types are: submit, button, or reset.

- <button className={styles.menu_close} onClick={() => closeModal(true)}>
+ <button className={styles.menu_close} onClick={() => closeModal(true)} type="button">

Line range hint 87-87: Provide alternative text for SVGs.

For accessibility purposes, SVGs should have an alternative text, provided via the title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

- <svg viewBox="0 0 24 24">
+ <svg viewBox="0 0 24 24" role="img" aria-label="Close icon">
    <title>Close icon</title>

Line range hint 101-101: Avoid redundant alt text in img elements.

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

- <img src={getImgUrl(nftData.image_url)} alt={`Image of ${nftData.name}`} />
+ <img src={getImgUrl(nftData.image_url)} alt={`${nftData.name}`} />
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 1545c3f and b8ec512.

Files selected for processing (2)
  • components/UI/modalProfilePic.tsx (4 hunks)
  • components/identities/updateProfilePic.tsx (1 hunks)
Additional context used
Biome
components/UI/modalProfilePic.tsx

[error] 87-87: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 101-101: Avoid the words "image", "picture", or "photo" in img element alt text.

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

(lint/a11y/noRedundantAlt)


[error] 119-119: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 86-86: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

Additional comments not posted (4)
components/identities/updateProfilePic.tsx (2)

Line range hint 1-1: LGTM!

The addition of the back prop to the UpdateProfilePic component is appropriate and integrates well with the existing code.


69-69: Ensure that the back function is correctly used.

The back function is passed to the ModalProfilePic component. Verify that it is used correctly within the ModalProfilePic component.

Verification successful

The back function is used correctly within the ModalProfilePic component.

The occurrences of back include its type definition, its inclusion in the component's props, and its invocation. This indicates proper usage.

  • File: components/UI/modalProfilePic.tsx
    • back: () => void;
    • back,
    • back();
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `ModalProfilePic` component.

# Test: Search for the function usage. Expect: Proper usage of the `back` function.
rg --type typescript $'ModalProfilePic'

Length of output: 73



Script:

#!/bin/bash
# Correct the file type and search for the ModalProfilePic component definition
rg --type tsx 'ModalProfilePic' > modal_profile_pic_locations.txt

# Extract the file paths and search for the usage of the `back` function within those files
while read -r file; do
  echo "File: $file"
  rg 'back' "$file"
done < modal_profile_pic_locations.txt

Length of output: 74



Script:

#!/bin/bash
# Search for the ModalProfilePic component in TypeScript files with .tsx extension
rg --glob '*.tsx' 'ModalProfilePic' > modal_profile_pic_locations.txt

# Extract the file paths and search for the usage of the `back` function within those files
while read -r file; do
  echo "File: $file"
  rg 'back' "$file"
done < modal_profile_pic_locations.txt

Length of output: 2066



Script:

#!/bin/bash
# Directly search for the usage of the `back` function within components/UI/modalProfilePic.tsx
rg 'back' components/UI/modalProfilePic.tsx

Length of output: 83

components/UI/modalProfilePic.tsx (2)

24-24: LGTM!

The addition of the back prop to the ModalProfilePic component is appropriate and integrates well with the existing code.


71-75: Ensure that the back function is correctly used.

The back function is used in the handleConfirm function. Verify that it is used correctly within the handleConfirm function.

Verification successful

Ensure that the back function is correctly used.

The back function appears to be used without any import or direct definition, suggesting it is likely a method from a global object like window.history or router. The usage within the handleConfirm function in components/UI/modalProfilePic.tsx aligns with this pattern.

  • components/UI/modalProfilePic.tsx:71-75: The back function is used directly, indicating it is likely a global method.

Based on the provided context and the search results, the usage of the back function in handleConfirm seems consistent with its intended behavior as a global method.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Test: Search for the function usage. Expect: Proper usage of the `back` function.
rg --type typescript $'handleConfirm'

Length of output: 71



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `handleConfirm` function definition.
ast-grep --lang tsx --pattern $'const handleConfirm = () => { $$$ }'

# Step 2: Search for the `back` function usage within the same file.
ast-grep --lang tsx --pattern $'back($_)' --search 'components/UI/modalProfilePic.tsx'

Length of output: 637



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `back` function usage within the same file.
ast-grep --lang tsx --pattern $'back($_)' components/UI/modalProfilePic.tsx

# Step 2: Search for the definition or import of the `back` function within the same file.
ast-grep --lang tsx --pattern $'const back = $_' components/UI/modalProfilePic.tsx
ast-grep --lang tsx --pattern $'import { back } from $_' components/UI/modalProfilePic.tsx

Length of output: 597



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `back` function definition across the entire codebase.
ast-grep --lang tsx --pattern $'const back = $_'

# Step 2: Search for the `back` function import across the entire codebase.
ast-grep --lang tsx --pattern $'import { back } from $_'

Length of output: 452



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `back` function definition across the entire codebase.
rg 'const back =' --glob '*.tsx'

# Step 2: Search for the `back` function import across the entire codebase.
rg 'import { back } from' --glob '*.tsx'

Length of output: 189



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `back` function definition across the entire codebase.
rg 'const back =' --glob '*.tsx'

# Step 2: Search for the `back` function import across the entire codebase.
rg 'import { back } from' --glob '*.tsx'

# Step 3: Search for the `back` function usage across the entire codebase.
rg 'back(' --glob '*.tsx'

Length of output: 278



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `back` function definition across the entire codebase.
rg 'const back =' --glob '*.tsx'

# Step 2: Search for the `back` function import across the entire codebase.
rg 'import { back } from' --glob '*.tsx'

# Step 3: Search for the `back` function usage across the entire codebase.
rg 'back\\(' --glob '*.tsx'

Length of output: 284



Script:

#!/bin/bash
# Description: Verify the usage of the `back` function in the `handleConfirm` function.

# Step 1: Search for the `back` function definition across the entire codebase.
rg 'const back =' --glob '*.tsx'

# Step 2: Search for the `back` function import across the entire codebase.
rg 'import back from' --glob '*.tsx'

# Step 3: Search for the `back` function usage across the entire codebase.
rg 'back\(' --glob '*.tsx'

Length of output: 950

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 (2)
components/UI/modalProfilePic.tsx (2)

Line range hint 77-77: Provide an explicit type for the button element.

The default type of a button is "submit", which may cause unintended form submissions. Specify the type explicitly.

  <button className={styles.menu_close} onClick={() => closeModal(true)} type="button">

Line range hint 92-92: Avoid redundant words in the img element alt text.

The alt text for the image element should not include words like "image", "picture", or "photo".

  <img
    src={getImgUrl(nftData.image_url)}
-   alt={`Image of ${nftData.name}`}
+   alt={`${nftData.name}`}
  />
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b8ec512 and df8466a.

Files selected for processing (1)
  • components/UI/modalProfilePic.tsx (4 hunks)
Additional context used
Biome
components/UI/modalProfilePic.tsx

[error] 78-78: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 92-92: Avoid the words "image", "picture", or "photo" in img element alt text.

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

(lint/a11y/noRedundantAlt)


[error] 110-110: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 77-77: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

Additional comments not posted (3)
components/UI/modalProfilePic.tsx (3)

16-16: Replace useContractWrite with useAccount.

The import statement for useContractWrite has been replaced with useAccount. This change aligns with the updated functionality in the component.


108-108: Enforce keyboard events for onClick mouse events.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

  <ClickableAction
    title="Yes, confirm the modification"
    style="primary"
    icon={
      <DoneFilledIcon
        width="30"
        color="#FFFFFF"
        secondColor={theme.palette.primary.main}
      />
    }
    description=""
-   onClick={confirm}
+   onClick={confirm}
+   onKeyDown={(e) => { if (e.key === 'Enter') confirm(); }} tabIndex={0}
  />

110-110: Enforce keyboard events for onClick mouse events.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

  <div className={ppStyles.modalBack} onClick={() => closeModal(true)} onKeyDown={(e) => { if (e.key === 'Enter') closeModal(true); }} tabIndex={0}>
Tools
Biome

[error] 110-110: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)

components/UI/modalProfilePic.tsx 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: 0

Outside diff range and nitpick comments (3)
components/UI/modalProfilePic.tsx (3)

Line range hint 82-82: Specify button type.

The default type of a button is submit, which can cause unintended form submissions. Specify the button type explicitly.

- <button className={styles.menu_close} onClick={() => closeModal(true)}>
+ <button type="button" className={styles.menu_close} onClick={() => closeModal(true)}>

Line range hint 83-83: Add alternative text to SVGs.

For accessibility purposes, SVGs should have an alternative text, provided via the title element. If the SVG element has role="img", add the aria-label or aria-labelledby attribute.

- <svg viewBox="0 0 24 24">
+ <svg viewBox="0 0 24 24" role="img" aria-labelledby="closeIconTitle">
+   <title id="closeIconTitle">Close</title>

Line range hint 97-97: Avoid redundant alt text in images.

Screen readers announce img elements as "images", so avoid using words like "image", "picture", or "photo" in the alt text.

- alt={`Image of ${nftData.name}`}
+ alt={`${nftData.name}`}
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between df8466a and eaa04a7.

Files selected for processing (2)
  • components/UI/modalProfilePic.tsx (4 hunks)
  • package.json (1 hunks)
Files skipped from review due to trivial changes (1)
  • package.json
Additional context used
Biome
components/UI/modalProfilePic.tsx

[error] 83-83: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 97-97: Avoid the words "image", "picture", or "photo" in img element alt text.

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

(lint/a11y/noRedundantAlt)


[error] 115-115: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 82-82: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

Additional comments not posted (3)
components/UI/modalProfilePic.tsx (3)

16-16: LGTM!

The import statement for useAccount from "@starknet-react/core" is correct and necessary for the useAccount hook used later in the code.


50-71: LGTM!

The confirm function is well-implemented, handling account execution, transaction addition, and error handling appropriately.


115-115: Enforce keyboard events for onClick mouse events.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

- <div className={ppStyles.modalBack} onClick={() => closeModal(true)}>
+ <div className={ppStyles.modalBack} onClick={() => closeModal(true)} onKeyDown={(e) => { if (e.key === 'Enter') closeModal(true); }} tabIndex={0}>
Tools
Biome

[error] 115-115: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)

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

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between eaa04a7 and 8766789.

Files selected for processing (1)
  • package.json (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • package.json

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

Outside diff range and nitpick comments (26)
components/UI/modalProfilePic.tsx (3)

Line range hint 82-82: Provide an explicit type for the button element.

The default type of a button is submit, which may cause unintended form submissions. Specify the type explicitly.

- <button className={styles.menu_close} onClick={() => closeModal(true)}>
+ <button type="button" className={styles.menu_close} onClick={() => closeModal(true)}>

Line range hint 83-83: Add alternative text to SVG.

For accessibility purposes, SVGs should have an alternative text provided via the title element.

- <svg viewBox="0 0 24 24">
+ <svg viewBox="0 0 24 24" role="img" aria-labelledby="closeIconTitle">
+   <title id="closeIconTitle">Close</title>

Line range hint 97-97: Avoid redundant alt text in images.

Screen readers announce img elements as "images", so it is unnecessary to redeclare this in alternative text.

- alt={`Image of ${nftData.name}`}
+ alt={`${nftData.name}`}
components/solana/changeAddressModal.tsx (3)

Line range hint 49-51: Add error handling for the setResolving call.

The setDomainToAddress function lacks error handling for the setResolving call. This could lead to unhandled promise rejections.

function setDomainToAddress(): void {
-  setResolving();
+  setResolving().catch((error) => {
+    console.error("Failed to set domain to address:", error);
+    // Optionally, add user notification here
+  });
}

Line range hint 87-87: Provide an explicit type for the button element.

The default type of a button is submit, which may cause unintended form submissions. Specify the type explicitly.

- <button className={styles.menu_close} onClick={handleClose}>
+ <button type="button" className={styles.menu_close} onClick={handleClose}>

Line range hint 88-88: Add alternative text to SVG.

For accessibility purposes, SVGs should have an alternative text provided via the title element.

- <svg viewBox="0 0 24 24">
+ <svg viewBox="0 0 24 24" role="img" aria-labelledby="closeIconTitle">
+   <title id="closeIconTitle">Close</title>
pages/identities.tsx (2)

Line range hint 63-63: Add missing dependency in the useEffect hook.

The addTransaction function should be included in the dependency array to avoid potential issues.

- }, [mintData]); // We want this to run only when the tx is sent
+ }, [mintData, addTransaction]); // We want this to run only when the tx is sent

Line range hint 68-71: Add error handling in the connectWallet function.

It is good practice to handle potential errors during the wallet connection process to improve user experience.

const connectWallet = async (connector: Connector) => {
  try {
    await connectAsync({ connector });
    localStorage.setItem("SID-connectedWallet", connector.id);
    localStorage.setItem("SID-lastUsedConnector", connector.id);
  } catch (error) {
    console.error("Failed to connect wallet:", error);
  }
};
components/solana/domainActions.tsx (3)

Line range hint 45-45: Add missing dependency in the useEffect hook.

The addTransaction function should be included in the dependency array to avoid potential issues.

- }, [mainDomainData]); // We want to execute this only once when the tx is sent
+ }, [mainDomainData, addTransaction]); // We want to execute this only once when the tx is sent

Line range hint 126-134: Add keyboard event handlers to the handleToggle function.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

const handleToggle = () => {
  setOpen((prevOpen) => !prevOpen);
};

const handleKeyDown = (event: React.KeyboardEvent) => {
  if (event.key === "Enter" || event.key === " ") {
    setOpen((prevOpen) => !prevOpen);
  }
};

// Usage
<div
  className={styles.domainSelect}
  ref={anchorRef}
  id="composition-button"
  aria-controls={open ? "composition-menu" : undefined}
  aria-expanded={open ? "true" : undefined}
  aria-haspopup="true"
  onClick={handleToggle}
  onKeyDown={handleKeyDown}
  tabIndex={0} // Ensure the element is focusable
>
  <OptionIcon width="16" color="#6D696A" />
</div>

Line range hint 137-145: Ensure that elements with ARIA roles use a valid, non-abstract ARIA role.

The role attribute should be valid and non-abstract to ensure accessibility.

<Popper
  open={open}
  anchorEl={anchorRef.current}
  role={undefined} // Remove the invalid role attribute
  placement="bottom-start"
  transition
  disablePortal
  className={styles.domainActionsMenu}
>
components/discount/freeRegisterCheckout.tsx (2)

Line range hint 83-83: Add missing dependency in the useEffect hook.

The addTransaction function should be included in the dependency array to avoid potential issues.

- }, [registerData, tokenId]); // We want this to run only when the tx is sent
+ }, [registerData, tokenId, addTransaction]); // We want this to run only when the tx is sent

Line range hint 119-121: Add error handling in the handleRegister function.

It is good practice to handle potential errors during the registration process to improve user experience.

const handleRegister = () => {
  execute()
    .then(() =>
      setDomainsMinting((prev) =>
        new Map(prev).set(encodedDomain.toString(), true)
      )
    )
    .catch((error) => {
      console.error("Failed to register domain:", error);
    });
};
components/identities/actions/addEvmModal.tsx (2)

Line range hint 55-55: Add missing dependency in the useEffect hook.

The addTransaction function should be included in the dependency array to avoid potential issues.

- }, [userData]); // We want to execute this only once when the tx is sent
+ }, [userData, addTransaction]); // We want to execute this only once when the tx is sent

Line range hint 164-167: Provide an explicit type for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.

<button
  className={styles.menu_close}
  onClick={() => closeModal(false)}
  type="button" // Add explicit type
>
components/identities/actions/clickable/clickablePersonhoodIcon.tsx (3)

Line range hint 154-157: Ensure keyboard accessibility for clickable elements.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

- <div className={styles.clickableIconAnima} onClick={startVerification}>
+ <div className={styles.clickableIconAnima} onClick={startVerification} onKeyDown={(e) => e.key === 'Enter' && startVerification()} tabIndex={0}>

Line range hint 180-180: Specify button type.

The default type of a button is submit, which can cause unintended form submissions. Specify the button type explicitly.

- <button className={modalStyles.menu_close} onClick={handleClose}>
+ <button type="button" className={modalStyles.menu_close} onClick={handleClose}>

Line range hint 181-181: Provide alternative text for SVG.

SVG elements should have alternative text for accessibility purposes. Add a title element or aria attributes.

- <svg viewBox="0 0 24 24">
+ <svg viewBox="0 0 24 24" role="img" aria-label="Close">
components/identities/actions/identityActions.tsx (2)

Line range hint 325-328: Ensure keyboard accessibility for clickable elements.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

- <p onClick={() => setViewMoreClicked(false)} className={styles.viewMore}>
+ <p onClick={() => setViewMoreClicked(false)} onKeyDown={(e) => e.key === 'Enter' && setViewMoreClicked(false)} tabIndex={0} className={styles.viewMore}>

Line range hint 333-338: Ensure keyboard accessibility for clickable elements.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

- <p onClick={() => { setViewMoreClicked(true); }} className={styles.viewMore}>
+ <p onClick={() => { setViewMoreClicked(true); }} onKeyDown={(e) => e.key === 'Enter' && setViewMoreClicked(true)} tabIndex={0} className={styles.viewMore}>
components/discount/registerDiscount.tsx (1)

Line range hint 437-437: Provide alternative text for images.

Images should have alternative text for accessibility purposes. Add an alt attribute.

- <img className={styles.image} src="/visuals/register.webp" />
+ <img className={styles.image} src="/visuals/register.webp" alt="Registration visual" />
components/domains/autorenewal.tsx (1)

Line range hint 418-418: Provide alternative text for images.

Images should have alternative text for accessibility purposes. Add an alt attribute.

- <img className={styles.image} src="/visuals/register.webp" />
+ <img className={styles.image} src="/visuals/register.webp" alt="Registration visual" />
components/discount/freeRenewalDiscount.tsx (1)

Line range hint 243-243: Simplify the conditional expression.

Unnecessary use of boolean literals in a ternary operator. Simplify the code by directly assigning the result without using a ternary operator.

- setEmailError(isValidEmail(value) ? false : true);
+ setEmailError(!isValidEmail(value));
components/discount/renewalDiscount.tsx (1)

Line range hint 261-261: Simplify the conditional expression.

Unnecessary use of boolean literals in a ternary operator. Simplify the code by directly assigning the result without using a ternary operator.

- setEmailError(isValidEmail(value) ? false : true);
+ setEmailError(!isValidEmail(value));
pages/solana.tsx (1)

Line range hint 293-299: Simplify the conditional expression.

Unnecessary use of boolean literals in a ternary operator. Simplify the code by directly assigning the result without using a ternary operator.

- return selectedDomain &&
-   selectedDomain.name === name &&
-   selectedDomain.signature &&
-   !selectedDomain.sent &&
-   selectedDomain.signature.max_validity > Date.now() / 1000
-   ? true
-   : false;
+ return (
+   selectedDomain &&
+   selectedDomain.name === name &&
+   selectedDomain.signature &&
+   !selectedDomain.sent &&
+   selectedDomain.signature.max_validity > Date.now() / 1000
+ );
components/domains/steps/checkoutCard.tsx (1)

Line range hint 684-684: Simplify the conditional expression.

Unnecessary use of boolean literals in a ternary operator. Simplify the code by directly assigning the result without using a ternary operator.

- setTermsBox(!termsBox ? true : false);
+ setTermsBox(!termsBox);
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8766789 and 4786a54.

Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
Files selected for processing (24)
  • components/UI/modalProfilePic.tsx (5 hunks)
  • components/discount/freeRegisterCheckout.tsx (2 hunks)
  • components/discount/freeRenewalDiscount.tsx (1 hunks)
  • components/discount/registerDiscount.tsx (1 hunks)
  • components/discount/renewalDiscount.tsx (1 hunks)
  • components/domains/autorenewal.tsx (1 hunks)
  • components/domains/externalDomainActions.tsx (1 hunks)
  • components/domains/externalDomainTransferModal.tsx (1 hunks)
  • components/domains/steps/checkoutCard.tsx (1 hunks)
  • components/identities/actions/addEvmModal.tsx (1 hunks)
  • components/identities/actions/changeAddressModal.tsx (1 hunks)
  • components/identities/actions/clickable/clickablePersonhoodIcon.tsx (1 hunks)
  • components/identities/actions/identityActions.tsx (1 hunks)
  • components/identities/actions/subdomainModal.tsx (1 hunks)
  • components/identities/actions/transferFormModal.tsx (1 hunks)
  • components/solana/changeAddressModal.tsx (1 hunks)
  • components/solana/domainActions.tsx (1 hunks)
  • hooks/useContract.tsx (1 hunks)
  • package.json (3 hunks)
  • pages/discord.tsx (1 hunks)
  • pages/github.tsx (1 hunks)
  • pages/identities.tsx (1 hunks)
  • pages/solana.tsx (1 hunks)
  • pages/twitter.tsx (1 hunks)
Additional context used
Biome
components/UI/modalProfilePic.tsx

[error] 83-83: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 97-97: Avoid the words "image", "picture", or "photo" in img element alt text.

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

(lint/a11y/noRedundantAlt)


[error] 115-115: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 82-82: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

components/solana/changeAddressModal.tsx

[error] 88-88: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 87-87: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

components/solana/domainActions.tsx

[error] 89-90: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 126-134: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 137-145: Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.

Check WAI-ARIA for valid roles or provide options accordingly.
Unsafe fix: Remove the invalid role attribute.
Check the list of all valid role attributes.

(lint/a11y/useValidAriaRole)

components/identities/actions/addEvmModal.tsx

[error] 168-168: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 226-226: Provide a text alternative through the alt, aria-label or aria-labelledby attribute

Meaningful alternative text on elements helps users relying on screen readers to understand content's purpose within a page.

(lint/a11y/useAltText)


[error] 164-167: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

components/identities/actions/clickable/clickablePersonhoodIcon.tsx

[error] 93-93: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 154-157: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 181-181: Alternative text title element cannot be empty

For accessibility purposes, SVGs should have an alternative text, provided via title element. If the svg element has role="img", you should add the aria-label or aria-labelledby attribute.

(lint/a11y/noSvgWithoutTitle)


[error] 180-180: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

components/identities/actions/identityActions.tsx

[error] 91-96: This else clause can be omitted because previous branches break early.

Unsafe fix: Omit the else clause.

(lint/style/noUselessElse)


[error] 325-328: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)


[error] 333-338: Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.

Actions triggered using mouse events should have corresponding keyboard events to account for keyboard-only navigation.

(lint/a11y/useKeyWithClickEvents)

components/discount/registerDiscount.tsx

[error] 332-332: Unnecessary use of boolean literals in conditional expression.

Simplify your code by directly assigning the result without using a ternary operator.
If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
Unsafe fix: Remove the conditional expression with

(lint/complexity/noUselessTernary)


[error] 437-437: Provide a text alternative through the alt, aria-label or aria-labelledby attribute

Meaningful alternative text on elements helps users relying on screen readers to understand content's purpose within a page.

(lint/a11y/useAltText)

components/domains/autorenewal.tsx

[error] 286-286: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 330-330: Unnecessary use of boolean literals in conditional expression.

Simplify your code by directly assigning the result without using a ternary operator.
If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
Unsafe fix: Remove the conditional expression with

(lint/complexity/noUselessTernary)


[error] 418-418: Provide a text alternative through the alt, aria-label or aria-labelledby attribute

Meaningful alternative text on elements helps users relying on screen readers to understand content's purpose within a page.

(lint/a11y/useAltText)

components/discount/freeRenewalDiscount.tsx

[error] 243-243: Unnecessary use of boolean literals in conditional expression.

Simplify your code by directly assigning the result without using a ternary operator.
If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
Unsafe fix: Remove the conditional expression with

(lint/complexity/noUselessTernary)


[error] 289-290: Change to an optional chain.

Unsafe fix: Change to an optional chain.

(lint/complexity/useOptionalChain)


[error] 443-443: Provide a text alternative through the alt, aria-label or aria-labelledby attribute

Meaningful alternative text on elements helps users relying on screen readers to understand content's purpose within a page.

(lint/a11y/useAltText)

components/discount/renewalDiscount.tsx

[error] 261-261: Unnecessary use of boolean literals in conditional expression.

Simplify your code by directly assigning the result without using a ternary operator.
If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
Unsafe fix: Remove the conditional expression with

(lint/complexity/noUselessTernary)


[error] 465-465: Provide a text alternative through the alt, aria-label or aria-labelledby attribute

Meaningful alternative text on elements helps users relying on screen readers to understand content's purpose within a page.

(lint/a11y/useAltText)

pages/solana.tsx

[error] 293-299: Unnecessary use of boolean literals in conditional expression.

Simplify your code by directly assigning the result without using a ternary operator.
If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
Unsafe fix: Remove the conditional expression with

(lint/complexity/noUselessTernary)

components/domains/steps/checkoutCard.tsx

[error] 684-684: Unnecessary use of boolean literals in conditional expression.

Simplify your code by directly assigning the result without using a ternary operator.
If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
Unsafe fix: Remove the conditional expression with

(lint/complexity/noUselessTernary)

Additional comments not posted (40)
hooks/useContract.tsx (3)

1-1: Update import statement.

The useContractWrite hook now uses useAccount instead of useContractWrite from @starknet-react/core.


6-6: Ensure account is available.

The account object is obtained from the useAccount hook. Ensure that account is always available when this hook is used.

Verification successful

Account availability verified

The account object is consistently obtained from the useAccount hook in all the files where useContractWrite is used.

  • pages/identities.tsx
  • pages/twitter.tsx
  • pages/discord.tsx
  • pages/solana.tsx
  • pages/github.tsx
  • components/solana/domainActions.tsx
  • components/domains/externalDomainActions.tsx
  • components/solana/changeAddressModal.tsx
  • components/domains/externalDomainTransferModal.tsx
  • components/domains/autorenewal.tsx
  • components/domains/steps/checkoutCard.tsx
  • components/discount/renewalDiscount.tsx
  • components/discount/registerDiscount.tsx
  • components/discount/freeRenewalDiscount.tsx
  • components/identities/actions/subdomainModal.tsx
  • components/identities/actions/transferFormModal.tsx
  • components/identities/actions/identityActions.tsx
  • components/identities/actions/changeAddressModal.tsx
  • components/identities/actions/clickable/clickablePersonhoodIcon.tsx
  • components/identities/actions/addEvmModal.tsx
  • components/discount/freeRegisterCheckout.tsx
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the `useContractWrite` hook is used in contexts where `useAccount` is available.

# Test: Search for the usage of `useContractWrite`. Expect: Usage within components that have access to `useAccount`.
rg --type tsx 'useContractWrite'

Length of output: 60



Script:

#!/bin/bash
# Description: Verify that the `useContractWrite` hook is used in contexts where `useAccount` is available.

# Test: Search for the usage of `useContractWrite`. Expect: Usage within components that have access to `useAccount`.
rg --type-add 'tsx:*.{ts,tsx}' --type tsx 'useContractWrite'

Length of output: 4330



Script:

#!/bin/bash
# Description: Verify that `useAccount` is used in the same files where `useContractWrite` is imported.

# Extract files where `useContractWrite` is imported
files=$(rg --type-add 'tsx:*.{ts,tsx}' --type tsx --files-with-matches 'useContractWrite')

# Search for `useAccount` usage in these files
for file in $files; do
  echo "Checking $file for useAccount..."
  rg 'useAccount' $file
done

Length of output: 7443


12-18: Handle potential null account.

The writeAsync function checks if account is available before attempting to execute the calls. Ensure that the null case is handled appropriately in the calling code.

package.json (1)

24-25: Update dependencies.

The versions of @starknet-react/chains and @starknet-react/core have been updated. Ensure that the updated versions are compatible with the rest of the codebase.

components/domains/externalDomainActions.tsx (3)

3-3: Update import statement.

The ExternalDomainActions component now uses useAccount from @starknet-react/core.


Line range hint 36-36: Ensure correct hook usage.

The useContractWrite hook is used to define the set_address_to_domain function. Ensure that the hook is used correctly and the calls are properly defined.


4-4: Ensure custom hook is available.

The useContractWrite custom hook is imported from the local hooks directory. Ensure that the hook is correctly defined and available.

Verification successful

Custom hook is correctly defined and available.

The useContractWrite custom hook is defined in the hooks/useContract.tsx file and is available for use.

  • Location:
    • hooks/useContract.tsx
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the `useContractWrite` custom hook is correctly defined and available.

# Test: Check the definition of the `useContractWrite` hook.
rg --type tsx 'export const useContractWrite' hooks/

Length of output: 82



Script:

#!/bin/bash
# Description: Verify that the `useContractWrite` custom hook is correctly defined and available.

# Test: Check the definition of the `useContractWrite` hook.
rg 'export const useContractWrite' hooks/

Length of output: 133

components/identities/actions/changeAddressModal.tsx (3)

3-3: Update import statement.

The ChangeAddressModal component now uses useAccount from @starknet-react/core.


Line range hint 38-38: Ensure correct hook usage.

The useContractWrite hook is used to define the set_domain_to_address function. Ensure that the hook is used correctly and the calls are properly defined.


4-4: Ensure custom hook is available.

The useContractWrite custom hook is imported from the local hooks directory. Ensure that the hook is correctly defined and available.

Verification successful

The useContractWrite custom hook is correctly defined and available.

  • The useContractWrite hook is defined in hooks/useContract.tsx.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the `useContractWrite` custom hook is correctly defined and available.

# Test: Check the definition of the `useContractWrite` hook.
rg --type tsx 'export const useContractWrite' hooks/

Length of output: 82



Script:

#!/bin/bash
# Description: Verify that the `useContractWrite` custom hook is correctly defined and available.

# Test: Check the definition of the `useContractWrite` hook.
rg 'export const useContractWrite' hooks/

Length of output: 133

components/UI/modalProfilePic.tsx (1)

Line range hint 1-16: Imports look good!

The change from useContractWrite to useAccount aligns with the new functionality introduced in the code.

components/identities/actions/transferFormModal.tsx (2)

Line range hint 1-8: Imports look good!

The import statements align with the functionality introduced in the code.


Line range hint 43-49: Good use of error handling in transferIdentityAndSetDomain.

The function correctly handles errors using a try-catch block.

components/solana/changeAddressModal.tsx (1)

1-3: Imports look good!

The import statements align with the functionality introduced in the code.

components/domains/externalDomainTransferModal.tsx (2)

Line range hint 1-8: Imports look good!

The import statements align with the functionality introduced in the code.


Line range hint 43-49: Good use of error handling in transferName.

The function correctly handles errors using a try-catch block.

pages/identities.tsx (1)

Line range hint 86-90: Verify that the txHash prop is correctly passed to the TxConfirmationModal component.

Ensure that the txHash prop is correctly passed to the TxConfirmationModal component to display the transaction hash.

Verification successful

Verified: The txHash prop is correctly passed to the TxConfirmationModal component.

  • The txHash prop is set to mintData?.transaction_hash in the pages/identities.tsx file.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that the `txHash` prop is correctly passed to the `TxConfirmationModal` component.

# Test: Search for the `TxConfirmationModal` component usage. Expect: The `txHash` prop is correctly passed.
rg --type tsx $'<TxConfirmationModal'

Length of output: 66



Script:

#!/bin/bash
# Description: Verify that the `txHash` prop is correctly passed to the `TxConfirmationModal` component.

# Test: Search for the `TxConfirmationModal` component usage. Expect: The `txHash` prop is correctly passed.
rg '<TxConfirmationModal'

Length of output: 504



Script:

#!/bin/bash
# Description: Verify that the `txHash` prop is correctly passed to the `TxConfirmationModal` component in the `pages/identities.tsx` file.

# Test: Search for the `TxConfirmationModal` component usage in the `pages/identities.tsx` file. Expect: The `txHash` prop is correctly passed.
rg '<TxConfirmationModal' pages/identities.tsx -A 5

Length of output: 273

components/identities/actions/clickable/clickablePersonhoodIcon.tsx (7)

17-17: LGTM!

The import of the useContractWrite hook looks good.


Line range hint 27-27: LGTM!

The callData state variable is correctly defined to hold Call objects.


Line range hint 30-31: LGTM!

The useContractWrite hook is correctly used to get the execute function and verifierData.


Line range hint 45-52: LGTM!

The executeVerification function is correctly defined to handle the contract execution and state updates.


Line range hint 54-58: LGTM!

The startVerification function is correctly defined to handle the initiation of the verification process.


Line range hint 60-71: LGTM!

The initAnimaSession function is correctly defined to handle the initialization of the Anima session and error logging.


Line range hint 79-91: LGTM!

The getSignature function is correctly defined to handle the fetching of the signature and setting the call data.

components/identities/actions/identityActions.tsx (4)

3-3: LGTM!

The import of the useAccount hook looks good.


Line range hint 12-12: LGTM!

The useAccount hook is correctly used to get the address.


Line range hint 65-69: LGTM!

The setMainId function is correctly defined to handle setting the main ID.


Line range hint 39-41: LGTM!

The disableRenewal function is correctly defined to handle disabling the renewal.

components/discount/registerDiscount.tsx (2)

4-4: LGTM!

The import of the useAccount hook looks good.


Line range hint 12-12: LGTM!

The useAccount hook is correctly used to get the address.

components/domains/autorenewal.tsx (2)

4-4: LGTM!

The import of the useAccount hook looks good.


Line range hint 12-12: LGTM!

The useAccount hook is correctly used to get the address.

components/discount/freeRenewalDiscount.tsx (2)

4-4: LGTM!

The useAccount hook import looks appropriate.


5-5: LGTM!

The useContractWrite hook import looks appropriate.

components/discount/renewalDiscount.tsx (2)

4-4: LGTM!

The useAccount hook import looks appropriate.


5-5: LGTM!

The useContractWrite hook import looks appropriate.

pages/solana.tsx (2)

7-7: LGTM!

The useAccount and useConnect hook imports look appropriate.


8-8: LGTM!

The useContractWrite hook import looks appropriate.

components/domains/steps/checkoutCard.tsx (2)

20-20: LGTM!

The useAccount hook import looks appropriate.


21-21: LGTM!

The useContractWrite hook import looks appropriate.

pages/github.tsx Show resolved Hide resolved
pages/twitter.tsx Show resolved Hide resolved
pages/discord.tsx Show resolved Hide resolved
components/UI/modalProfilePic.tsx Show resolved Hide resolved
components/UI/modalProfilePic.tsx Show resolved Hide resolved
pages/identities.tsx Show resolved Hide resolved
components/solana/domainActions.tsx Show resolved Hide resolved
components/discount/freeRegisterCheckout.tsx Show resolved Hide resolved
components/identities/actions/addEvmModal.tsx Show resolved Hide resolved
@Marchand-Nicolas Marchand-Nicolas added the 🚧 In progress do not merge Pull Request in progress, please do not merge label Jul 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🚧 In progress do not merge Pull Request in progress, please do not merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

After choosing an avatar, the modal is not closed automatically
1 participant