PE-9075: Disable AO-dependent features for Ar.io Solana migration#2116
PE-9075: Disable AO-dependent features for Ar.io Solana migration#2116vilenarios wants to merge 1 commit intodevfrom
Conversation
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (11)
📝 WalkthroughWalkthroughThe pull request disables AR.io-specific features during a migration to Solana: token balance updates, ArNS name assignment UI across multiple screens, and ARIO token selection in payment flows. A migration announcement banner is added to the app shell, and a Git hook requirement is documented. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- stop fetching ARIO token balance in user profile - disable ArNS name assignment in details panel, file context menu, and upload flow - disable ArNS name fetching (LoadAnts) during upload - remove ARIO on AO and ARIO on AO via ETH top-up options (keep ARIO on Base) - add persistent solana migration banner with link to ar.io/solana-migration - add pre-commit flutter version check hook note to CLAUDE.md all disabled code tagged with // TODO(solana-migration): for easy re-enablement. preserves: primary name display, GAR fetching, ARIO on Base top-up, AR balance. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@lib/app_shell.dart`:
- Around line 595-601: Replace the hardcoded English strings in the TextSpan
nodes with localized values from AppLocalizations: remove the literal text in
the two TextSpan instances and call AppLocalizations.of(context) to fetch keys
(e.g., bannerMessage and bannerLearnMore or similarly named keys you add) so the
banner copy is localized; ensure the surrounding build method has an available
BuildContext, import the generated AppLocalizations, and keep the existing style
reference (typography) on the "Learn More" TextSpan.
In `@lib/components/upload_form.dart`:
- Around line 2408-2426: Replace the hardcoded UI strings in the upload failure
modal with localized strings: change the title values ('Upload Interrupted' /
'Problem with Upload'), the action titles ('Dismiss' / 'Do Not Fix' and 'Resume
Upload' / 'Re-Upload') and any other newly added hardcoded text in the same
block to use appLocalizationsOf(context).<...> accessors; add corresponding
entries to the generated AppLocalizations (e.g., uploadInterrupted,
uploadProblem, dismiss, doNotFix, resumeUpload, reupload) and then reference
them from the modal/title/action constructors and from _failedUploadList where
applicable so all new user-facing text uses the localization helper.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: de248106-0af9-402e-99ed-9cab6c5a3d0e
📒 Files selected for processing (11)
CLAUDE.mdlib/app_shell.dartlib/authentication/ardrive_auth.dartlib/components/details_panel.dartlib/components/profile_card.dartlib/components/upload_form.dartlib/core/upload/view/manifest_options/manifest_options.dartlib/pages/drive_detail/components/drive_explorer_item_tile.dartlib/turbo/topup/models/crypto_token.dartlib/turbo/topup/views/crypto_topup/token_selection_view.dartlib/turbo/topup/views/unified/inline_crypto_payment.dart
| const TextSpan( | ||
| text: | ||
| 'Ar.io is migrating to Solana! Register before the May 15, 2026 snapshot! Manage your ArNS names at arns.ar.io. ', | ||
| ), | ||
| TextSpan( | ||
| text: 'Learn More', | ||
| style: typography |
There was a problem hiding this comment.
Localize the new banner copy instead of hardcoded text.
Line 597 and Line 600 introduce user-facing English strings directly, so they won’t be translated.
🌐 Suggested change
- const TextSpan(
- text:
- 'Ar.io is migrating to Solana! Register before the May 15, 2026 snapshot! Manage your ArNS names at arns.ar.io. ',
- ),
+ TextSpan(
+ text: appLocalizationsOf(context).solanaMigrationBannerMessage,
+ ),
- text: 'Learn More',
+ text: appLocalizationsOf(context).learnMore,As per coding guidelines, "Access localized strings via Flutter's generated AppLocalizations class".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@lib/app_shell.dart` around lines 595 - 601, Replace the hardcoded English
strings in the TextSpan nodes with localized values from AppLocalizations:
remove the literal text in the two TextSpan instances and call
AppLocalizations.of(context) to fetch keys (e.g., bannerMessage and
bannerLearnMore or similarly named keys you add) so the banner copy is
localized; ensure the surrounding build method has an available BuildContext,
import the generated AppLocalizations, and keep the existing style reference
(typography) on the "Learn More" TextSpan.
| title: isResumable ? 'Upload Interrupted' : 'Problem with Upload', | ||
| description: appLocalizationsOf(context).yourUploadFailed, | ||
| content: state.failedTasks != null | ||
| ? _failedUploadList(state.failedTasks!) | ||
| ? _failedUploadList(state.failedTasks!, | ||
| isResumable: isResumable) | ||
| : null, | ||
| actions: state.failedTasks == null | ||
| ? null | ||
| : [ | ||
| ModalAction( | ||
| action: () => Navigator.of(context).pop(false), | ||
| title: 'Do Not Fix', | ||
| title: isResumable ? 'Dismiss' : 'Do Not Fix', | ||
| ), | ||
| ModalAction( | ||
| action: () { | ||
| context.read<UploadCubit>().retryUploads(); | ||
| }, | ||
| title: 'Re-Upload', | ||
| title: isResumable ? 'Resume Upload' : 'Re-Upload', | ||
| ), |
There was a problem hiding this comment.
Localize the newly added resumable-failure UI strings.
Line 2408, Line 2419, Line 2425, and Line 2449 introduce new user-facing hardcoded text. Please move these into generated localizations and access via appLocalizationsOf(context) to keep i18n behavior consistent.
Suggested direction
+ final l10n = appLocalizationsOf(context);
- title: isResumable ? 'Upload Interrupted' : 'Problem with Upload',
+ title: isResumable ? l10n.uploadInterrupted : l10n.problemWithUpload,
- title: isResumable ? 'Dismiss' : 'Do Not Fix',
+ title: isResumable ? l10n.dismissEmphasized : l10n.doNotFixUpload,
- title: isResumable ? 'Resume Upload' : 'Re-Upload',
+ title: isResumable ? l10n.resumeUpload : l10n.reuploadEmphasized,
- isResumable ? 'Your upload was interrupted ...' : 'It seems there was a partial failure ...'
+ isResumable ? l10n.uploadInterruptedResumableDescription : l10n.partialUploadFailureDescriptionAs per coding guidelines: **/*.dart: Access localized strings via Flutter's generated AppLocalizations class.
Also applies to: 2448-2451
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@lib/components/upload_form.dart` around lines 2408 - 2426, Replace the
hardcoded UI strings in the upload failure modal with localized strings: change
the title values ('Upload Interrupted' / 'Problem with Upload'), the action
titles ('Dismiss' / 'Do Not Fix' and 'Resume Upload' / 'Re-Upload') and any
other newly added hardcoded text in the same block to use
appLocalizationsOf(context).<...> accessors; add corresponding entries to the
generated AppLocalizations (e.g., uploadInterrupted, uploadProblem, dismiss,
doNotFix, resumeUpload, reupload) and then reference them from the
modal/title/action constructors and from _failedUploadList where applicable so
all new user-facing text uses the localization helper.
6ba8d3a to
a76fefc
Compare
|
Visit the preview URL for this PR (updated for commit a76fefc): https://ardrive-web--pr2116-pe-9075-disable-ao-f-ggic4a21.web.app (expires Tue, 05 May 2026 20:34:59 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: a224ebaee2f0939e7665e7630e7d3d6cd7d0f8b0 |
Summary
What's preserved
Notes
// TODO(solana-migration):for easy re-enablementTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Removals
Documentation