Skip to content

Conversation

Hackmodford
Copy link

Tweaks the background color of the pull to refresh component to match the page background.

@actual-github-bot actual-github-bot bot changed the title Style pull to refresh [WIP] Style pull to refresh Oct 13, 2025
Copy link

netlify bot commented Oct 13, 2025

Deploy Preview for actualbudget ready!

Name Link
🔨 Latest commit 21d767e
🔍 Latest deploy log https://app.netlify.com/projects/actualbudget/deploys/68eecb47fe369e0008b15c46
😎 Deploy Preview https://deploy-preview-5917.demo.actualbudget.org
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

github-actions bot commented Oct 13, 2025

Bundle Stats — desktop-client

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
23 10.82 MB → 10.82 MB (-391 B) -0.00%
Changeset
File Δ Size
src/components/mobile/transactions/TransactionList.tsx 📈 +47 B (+0.26%) 17.77 kB → 17.81 kB
src/components/mobile/budget/BudgetTable.jsx 📈 +6 B (+0.02%) 24.08 kB → 24.09 kB
src/components/mobile/budget/ExpenseCategoryListItem.tsx 📉 -51 B (-0.38%) 13.15 kB → 13.1 kB
src/components/mobile/budget/ExpenseGroupListItem.tsx 📉 -121 B (-0.88%) 13.37 kB → 13.25 kB
src/components/mobile/budget/IncomeGroup.tsx 📉 -121 B (-0.97%) 12.2 kB → 12.08 kB
src/components/mobile/budget/IncomeCategoryListItem.tsx 📉 -104 B (-1.02%) 9.97 kB → 9.87 kB
View detailed bundle breakdown

Added

No assets were added

Removed

No assets were removed

Bigger

No assets were bigger

Smaller

Asset File Size % Changed
static/js/narrow.js 653.15 kB → 652.77 kB (-391 B) -0.06%

Unchanged

Asset File Size % Changed
static/js/index.js 7.41 MB 0%
static/js/de.js 145.15 kB 0%
static/js/en-GB.js 6.84 kB 0%
static/js/en.js 132.54 kB 0%
static/js/es.js 76.53 kB 0%
static/js/fr.js 154.21 kB 0%
static/js/it.js 145.98 kB 0%
static/js/nl.js 100.38 kB 0%
static/js/pl.js 86.74 kB 0%
static/js/pt-BR.js 146.51 kB 0%
static/js/sv.js 69.03 kB 0%
static/js/th.js 188.29 kB 0%
static/js/uk.js 191.53 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 12.94 kB 0%
static/js/workbox-window.prod.es5.js 5.64 kB 0%
static/js/resize-observer.js 18.37 kB 0%
static/js/BackgroundImage.js 120.48 kB 0%
static/js/ReportRouter.js 1.01 MB 0%
static/js/TransactionList.js 13.87 kB 0%
static/js/wide.js 168.68 kB 0%
static/js/usePayeeRuleCounts.js 9.04 kB 0%
static/js/useTransactionBatchActions.js 13.09 kB 0%

Copy link
Contributor

github-actions bot commented Oct 13, 2025

Bundle Stats — loot-core

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
1 4.31 MB 0%

Changeset

No files were changed

View detailed bundle breakdown

Added

No assets were added

Removed

No assets were removed

Bigger

No assets were bigger

Smaller

No assets were smaller

Unchanged

Asset File Size % Changed
kcab.worker.C_13DhnM.js 4.31 MB 0%

@Hackmodford Hackmodford changed the title [WIP] Style pull to refresh Style pull to refresh Oct 13, 2025
Copy link
Contributor

coderabbitai bot commented Oct 13, 2025

Walkthrough

Multiple mobile UI components had their styling simplified: several budget-related components (ExpenseCategoryListItem, ExpenseGroupListItem/ExpenseGroupHeader, IncomeCategoryListItem, IncomeGroup, BudgetTable) no longer choose different background/header colors based on whether the month is current and instead use fixed theme color values. TransactionList's empty-state container was given explicit sizing (height: '100%', minHeight: '50vh'). PullToRefresh had its outer div style reformatted to a multi-line style object (retaining overflow: 'auto' and flex: 1). No control-flow, data-flow, export, or API changes were made.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

:sparkles: merged

Suggested reviewers

  • matt-fidd
  • joel-jeremy

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title only mentions styling the pull-to-refresh component while the PR also includes multiple other style updates (budget tables, category and group items, transaction list), so it does not summarize the main scope of the changeset. Update the title to reflect the broader set of style changes in the PR, for example “Mobile UI style adjustments: pull-to-refresh, budget components, and transaction list.”
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed The description accurately references the pull-to-refresh background color tweak included in the changeset, making it relevant to the PR even though it does not enumerate every style update.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6f9dd5 and 21d767e.

⛔ Files ignored due to path filters (7)
  • packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-individual-account-page-and-checks-that-filtering-is-working-5-chromium-linux.png is excluded by !**/*.png
  • packages/desktop-client/e2e/accounts.mobile.test.ts-snapshots/Mobile-Accounts-opens-the-accounts-page-and-asserts-on-balances-2-chromium-linux.png is excluded by !**/*.png
  • packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Envelope-checks-that-clicking--ff568-l-redirects-to-the-category-transactions-page-2-chromium-linux.png is excluded by !**/*.png
  • packages/desktop-client/e2e/budget.mobile.test.ts-snapshots/Mobile-Budget-Tracking-checks-that-clicking--57d88-l-redirects-to-the-category-transactions-page-2-chromium-linux.png is excluded by !**/*.png
  • packages/desktop-client/e2e/reports.test.ts-snapshots/Reports-custom-reports-Switches-to-Donut-Graph-and-checks-the-visuals-1-chromium-linux.png is excluded by !**/*.png
  • packages/desktop-client/e2e/transactions.mobile.test.ts-snapshots/Mobile-Transactions-creates-a-categorized-transaction-from-categories-uncategorized-page-2-chromium-linux.png is excluded by !**/*.png
  • packages/desktop-client/e2e/transactions.mobile.test.ts-snapshots/Mobile-Transactions-creates-an-uncategorized-transaction-from-categories-uncategorized-page-2-chromium-linux.png is excluded by !**/*.png
📒 Files selected for processing (7)
  • packages/desktop-client/src/components/mobile/PullToRefresh.tsx (1 hunks)
  • packages/desktop-client/src/components/mobile/budget/BudgetTable.jsx (1 hunks)
  • packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx (1 hunks)
  • packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx (1 hunks)
  • packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx (1 hunks)
  • packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx (1 hunks)
  • packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/desktop-client/src/components/mobile/PullToRefresh.tsx
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)

**/*.{ts,tsx}: Use functional and declarative programming patterns; avoid classes
Favor named exports for components and utilities
Prefer type aliases over interface
Avoid enum; use objects or maps instead
Avoid using any or unknown unless absolutely necessary; prefer existing type definitions
Avoid type assertions with as or non-null !; prefer using satisfies
Use the function keyword for pure functions
Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements

Files:

  • packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx
  • packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx
  • packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx
  • packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx
  • packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx
**/*.tsx

📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)

**/*.tsx: When creating a new component, place it in its own file rather than grouping multiple components in a single file
Use declarative JSX, keeping JSX minimal and readable

Files:

  • packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx
  • packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx
  • packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx
  • packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx
  • packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx
**/*.{js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)

Use TypeScript for all code

Files:

  • packages/desktop-client/src/components/mobile/budget/BudgetTable.jsx
🧬 Code graph analysis (5)
packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx (1)
packages/component-library/src/theme.ts (1)
  • theme (1-204)
packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx (1)
packages/component-library/src/theme.ts (1)
  • theme (1-204)
packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx (1)
packages/component-library/src/theme.ts (1)
  • theme (1-204)
packages/desktop-client/src/components/mobile/budget/BudgetTable.jsx (1)
packages/component-library/src/theme.ts (1)
  • theme (1-204)
packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx (1)
packages/component-library/src/theme.ts (1)
  • theme (1-204)
🪛 GitHub Actions: autofix.ci
packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx

[warning] 13-13: ESLint: 'monthUtils' is defined but never used. (no-unused-vars)

packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx

[warning] 12-12: ESLint: 'monthUtils' is defined but never used. (no-unused-vars)

packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx

[warning] 15-15: ESLint: 'monthUtils' is defined but never used. (no-unused-vars)


[warning] 131-131: ESLint: 'month' is defined but never used. (no-unused-vars)

packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx

[warning] 16-16: ESLint: 'monthUtils' is defined but never used. (no-unused-vars)


[warning] 119-119: ESLint: 'month' is defined but never used. (no-unused-vars)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: test
  • GitHub Check: validate-cli
  • GitHub Check: Analyze
  • GitHub Check: Functional Desktop App
  • GitHub Check: Wait for Netlify build to finish
  • GitHub Check: build (ubuntu-22.04)
  • GitHub Check: build (windows-latest)
  • GitHub Check: build (macos-latest)
  • GitHub Check: compare
🔇 Additional comments (6)
packages/desktop-client/src/components/mobile/budget/BudgetTable.jsx (1)

337-337: LGTM! Mobile-specific background color.

The change from theme.pageBackground to theme.mobilePageBackground correctly applies mobile-specific theming to the budget table container.

packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx (1)

418-418: LGTM! Simplified background styling.

The change to a fixed theme.budgetOtherMonth background color simplifies the component by removing month-based conditional logic, aligning with the broader theming standardization in this PR.

packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx (1)

173-174: LGTM! Improved empty state sizing.

The explicit height and minHeight ensure the empty state container is properly sized and provides adequate visual presence when no transactions exist.

packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx (1)

262-262: LGTM! Consistent background styling.

The change to a fixed theme.budgetOtherMonth background color aligns with the broader theming standardization across mobile budget components in this PR.

packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx (1)

151-151: LGTM! Header styling distinction.

The use of theme.budgetCurrentMonth for the group header creates a visual distinction from category items (which use theme.budgetOtherMonth), helping users differentiate between headers and items in the budget view.

packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx (1)

137-137: LGTM! Consistent header styling.

The use of theme.budgetCurrentMonth for the income group header aligns with the expense group header styling, maintaining visual consistency across budget group headers.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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

🧹 Nitpick comments (1)
packages/desktop-client/src/components/mobile/PullToRefresh.tsx (1)

10-16: LGTM! Background color matches page theme.

The backgroundColor addition correctly uses the CSS custom property to match the page background, achieving the PR objective.

Optional: Consider consolidating all container styles using emotion/css (like the BasePullToRefresh styles below) for consistency, though the current inline style approach is acceptable.

+const containerStyles = css({
+  overflow: 'auto',
+  flex: 1,
+  backgroundColor: 'var(--color-pageBackground)',
+});
+
 export function PullToRefresh(props: PullToRefreshProps) {
   return (
-    <div
-      style={{
-        overflow: 'auto',
-        flex: 1,
-        backgroundColor: 'var(--color-pageBackground)',
-      }}
-    >
+    <div className={containerStyles}>
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3715f16 and a6f9dd5.

⛔ Files ignored due to path filters (1)
  • upcoming-release-notes/5917.md is excluded by !**/*.md
📒 Files selected for processing (1)
  • packages/desktop-client/src/components/mobile/PullToRefresh.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)

**/*.{ts,tsx}: Use functional and declarative programming patterns; avoid classes
Favor named exports for components and utilities
Prefer type aliases over interface
Avoid enum; use objects or maps instead
Avoid using any or unknown unless absolutely necessary; prefer existing type definitions
Avoid type assertions with as or non-null !; prefer using satisfies
Use the function keyword for pure functions
Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements

Files:

  • packages/desktop-client/src/components/mobile/PullToRefresh.tsx
**/*.tsx

📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)

**/*.tsx: When creating a new component, place it in its own file rather than grouping multiple components in a single file
Use declarative JSX, keeping JSX minimal and readable

Files:

  • packages/desktop-client/src/components/mobile/PullToRefresh.tsx

@matt-fidd
Copy link
Member

/update-vrt

Copy link
Member

Choose a reason for hiding this comment

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

Hey @Hackmodford, this doesn't look quite right. Could you take a look at the visual changes here please?

Copy link
Author

Choose a reason for hiding this comment

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

After investigating, I think the real issue I have is with the budget colors.

What do you think of removing the current/other budget style and leaving it consistent? The header of the page changes color when on another month.

I believe the different background color is a holdover from the way the budget view in the desktop client has a different color. I don't think it makes sense in the mobile context.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants