feat: calculator v61 redesign#554
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c2d065d16
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 76f4cc3403
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2f07d5c702
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Notes from testing: 1. Screen.Recording.2026-05-18.at.12.41.59.mov2. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3c462f2f9a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
122da44 to
87b302a
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 87b302a6fc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 038338ec9e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d007e0500d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Tested on iPhone 17 simulator and iPhone SE on-device: It basically only works when the calculator widget is at the very top. In every other case the widget is behind the custom keyboard, even when there would be enough space it "pulls" it down again behind the number pad. Also, I found myself repeatedly in a state where I could not scroll back up to the home screen again. Simulator.Screen.Recording.-.iPhone.17.-.2026-05-21.at.16.46.09.movI'm wondering what is the reasoning for moving away from the on-screen keyboard? Also not clear how this would look for with small variant in the next iteration. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bcd65d5a27
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
62b0997 to
bb69832
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bb698322e8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
bb69832 to
e2cebe3
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2cebe38fc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
e2cebe3 to
f27ead0
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f27ead0d07
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
6b93395 to
62bfa55
Compare
Still seeing this, also reflected by failing e2e tests. |
62bfa55 to
3045c46
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3045c46f6b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let bitcoinValue = saved.bitcoinValue.isEmpty | ||
| ? "" | ||
| : CalculatorWidgetFormatter.satsToBitcoinValue(savedSats, displayUnit: currency.displayUnit) |
There was a problem hiding this comment.
Preserve zero-sats state when hydrating calculator preview
When a saved calculator state has a non-empty bitcoin value that resolves to 0 sats (e.g. user explicitly entered 0 sats or fiat input rounded to zero), this hydration path converts it with satsToBitcoinValue, which returns an empty string for zero. That makes the preview treat the value as blank and can clear/miscompute the paired fiat display, so the preview no longer matches the persisted in-app calculator state.
Useful? React with 👍 / 👎.
Description
This PR:
ovi/calculator-os-widget-v61-backup-ios.Linked Issues/Tasks
Related: synonymdev/bitkit-android#942
Screenshot / Video
Not attached in this pass.
QA Notes
changelog.d/next/554.changed.mdManual Tests
Dev + AI verified locally:
Reviewer / QA requested, dev verified locally:
Note
These reviewer/QA-requested checks are marked as covered because they were exercised during local implementation and follow-up verification, including the final confirmed manual pass on the calculator focus/dismiss behavior.
The checks cover formatting/input behavior, first/middle/last widget positions, above/around/below-center focus transitions, outside-tap dismissal, vertical numpad collapse, scroll locking while focused, and the vertical Home pager swipe-back regression.
They do not represent a separate QA-team sign-off; they document the acceptance points already verified locally before handing the PR back for review.
Automated Tests
Added in this PR:
CalculatorWidgetTests: covers calculator grouping, decimal placeholder behavior, number-pad delete/clear, decimal caps, localized comma input normalization, localized decimal key handling, fiat-only persistence, symbol shortening, classic BTC-to-sats conversion, classic BTC max-supply rejection, and visible0sats for fiat conversions that round to zero.Automated Checks
swiftformat Bitkit/Components/Widgets/CalculatorWidget.swift Bitkit/Views/Home/HomeWidgetsView.swiftcompleted with no formatting changes needed after the final animation patch.git diff --checkpassed.xcodebuild -workspace Bitkit.xcodeproj/project.xcworkspace -scheme Bitkit -configuration Debug -destination 'id=00008150-001C691C2604401C' -derivedDataPath build/DeviceValidation SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) E2E_BUILD' buildpassed on the connected iPhone.LDKNodeFFI.frameworkinstall stub frombuild/DeviceValidation/Build/Products/Debug-iphoneos/Bitkit.app, re-signed the generated app product, installed it withxcrun devicectl device install app --device 07CD4544-B1F1-59BB-BB01-D50A80AECAC9, and launchedto.bitkitsuccessfully.xcodebuild build-for-testing ... -only-testing:BitkitTests/CalculatorWidgetTestspassed; after removing the known generated staticLDKNodeFFI.frameworkinstall stub and re-signing the generated app product,xcodebuild test-without-building ... -only-testing:BitkitTests/CalculatorWidgetTestspassed with 14 tests and 0 failures.