Skip to content

fix: handle empty input state in Geez numerals demo#11

Open
NatnaelMalike wants to merge 1 commit intoBeamSol:mainfrom
NatnaelMalike:fix/natnael
Open

fix: handle empty input state in Geez numerals demo#11
NatnaelMalike wants to merge 1 commit intoBeamSol:mainfrom
NatnaelMalike:fix/natnael

Conversation

@NatnaelMalike
Copy link

  • Clear input field properly when all characters are deleted
  • Return empty string for zero/empty input in toEthNumber
  • Improve input handling to reset state correctly

- Clear input field properly when all characters are deleted
- Return empty string for zero/empty input in toEthNumber
- Improve input handling to reset state correctly
@vercel
Copy link

vercel bot commented Jan 2, 2026

@NatnaelMalike is attempting to deploy a commit to the Beamlak Solomon 's projects Team on Vercel.

A member of the Team first needs to authorize it.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @NatnaelMalike, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a user experience issue in the Geez numerals demo by refining how empty input states are managed. Previously, deleting all characters might have left a '0' or an invalid conversion displayed. The changes ensure that when the input field is cleared, the demo correctly reflects an empty state, making the interaction smoother and more predictable for users.

Highlights

  • Empty Input Handling: The demo now correctly clears the input field when all characters are deleted, providing a more intuitive user experience.
  • Geez Numeral Conversion: The toEthNumber function has been updated to return an empty string when the input is zero or effectively empty, preventing '0' from being displayed when the field is cleared.
  • State Management: Input handling logic has been improved to properly reset the component's state when the input field becomes empty.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request addresses an issue with handling empty input in the Geez numerals demo component. The changes correctly handle clearing the input field by using 0 as an internal state representation for an empty value. The toEthNumber function is updated to return an empty string for 0, and the input component is updated to display an empty string when the state is 0. My review identifies one logic issue where typing '0' into the input field does not update the state correctly, leading to a poor user experience. I've included a suggestion to resolve this.

Comment on lines 88 to 90
if (!isNaN(value) && value >= 1 && value <= 1000000) {
setInputNumber(value);
}
Copy link
Contributor

Choose a reason for hiding this comment

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

high

The current logic prevents the user from setting the input to 0. If a user types 0, parseInt will correctly parse it, but the condition value >= 1 will evaluate to false, and setInputNumber will not be called. This results in the component's state not being updated, and the input field will revert to its previous value on the next render, which is a confusing user experience.

Since 0 is used to represent the empty state in this component, you should allow setInputNumber(0) to be called when the user types 0. This will make the behavior consistent with clearing the input field.

Suggested change
if (!isNaN(value) && value >= 1 && value <= 1000000) {
setInputNumber(value);
}
if (!isNaN(value) && value >= 0 && value <= 1000000) {
setInputNumber(value);
}

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.

1 participant