Skip to content

Show the disabled Submit button in the report preview when self-approval is prevented - #101148

Merged
madmax330 merged 3 commits into
mainfrom
claude-previewDisabledSubmitPreventSelfApproval
Oct 8, 2026
Merged

madmax330 merged 3 commits into
mainfrom
claude-previewDisabledSubmitPreventSelfApproval

Conversation

@MelvinBot

@MelvinBot MelvinBot commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Explanation of Change

The report preview never rendered a Submit button on a "Prevent self-approvals" workspace, so there was nothing to disable. The two Submit surfaces resolved their action differently:

  • Report header — isSubmitAction in ReportPrimaryActionUtils.ts blocks SUBMIT for prevented self-approval only when the current user is not the submitter (&& !isReportSubmitter). The submitter still gets SUBMIT, and SubmitPrimaryAction renders it disabled.
  • Report preview — canSubmit in ReportPreviewActionUtils.ts had the same check without the !isSubmitter qualifier, so it returned false for the submitter. getReportPreviewAction therefore never returned SUBMIT, SubmitActionButton was never mounted, and the preview fell through to rendering only the View button.

That made the disabled-state gate added by #97946 unreachable for the prevent-self-approval branch — the component it lives in is never mounted. Its unit test mocks shouldBlockSubmitDueToPreventSelfApproval, so it passed while the real app skipped the component, which is why this only surfaced in QA.

This PR adds the !isSubmitter qualifier to canSubmit, so the two gates agree: prevented self-approval hides Submit from everyone except the submitter, who gets the action and sees the button rendered disabled. No change to SubmitActionButton was needed.

Two regression tests were added to tests/actions/ReportPreviewActionUtilsTest.ts covering the submitter (expects SUBMIT) and a non-submitter (expects not SUBMIT) on a prevent-self-approval workspace. The first test fails on main and passes with this change.

AI Tests run locally
Check Result
npm run lint-changed ✅ pass
npm run typecheck ✅ pass
npm run spell-changed ✅ pass
npm test — ReportPreviewActionUtilsTest, ReportPrimaryActionUtilsTest, MoneyRequestReportPreview, ReportPreviewActionButtonTest, SubmitActionButtonTest, useReportPreviewActionDecisionTest, ReportWorkflowTest ✅ 260 passed

Not run: npm run prettier (no such script in this repo — formatting is enforced through ESLint), npm run react-compiler-compliance-check (no .tsx changed), npm run storybook --smoke-test (no component changed).

Browser verification was not possible. The automated web session handed to this run was stuck on a blank page and could not be driven, so the behavior above rests on unit-test and code evidence, not a live repro. The human co-author should confirm the disabled button visually before marking this ready for review.

Fixed Issues

$ #100709
PROPOSAL: #100709 (comment)

Tests

// TODO: The human co-author must fill out the tests they ran before marking this PR as "ready for review".
// Suggested starting point, matching the steps in the linked issue:
// 1. Go to Workspace settings > Workflows and enable "Prevent self-approvals".
// 2. Go to the workspace chat and create an expense.
// 3. Verify the report preview card in the chat shows a Submit button that is disabled, next to the View button.
// 4. Open the expense report and verify the header Submit button is disabled too, matching the preview.
// 5. Turn "Prevent self-approvals" off and verify both Submit buttons are enabled again.

  • Verify that no errors appear in the JS console

Offline tests

// TODO: The human co-author must fill this out before marking this PR as "ready for review".

QA Steps

// TODO: The human co-author must fill out the QA tests before marking this PR as "ready for review".

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari

…val is prevented

canSubmit hid the preview's Submit action from the submitter on a prevent-self-approval
workspace, so SubmitActionButton never mounted and its disabled state was unreachable. The
report header's isSubmitAction qualifies the same check with !isReportSubmitter and shows a
disabled Submit instead. Align the preview with the header.

Co-authored-by: thelullabyy <thelullabyy@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team September 15, 2026 02:20
@melvin-bot melvin-bot Bot added Melvin-Test-Android Melvin-Test-Web Triggers Melvin to run the testing steps of the PR on web labels Sep 15, 2026
@MelvinBot

Copy link
Copy Markdown
Contributor Author

I created this PR from an upstream branch because I don't have push access to your fork.

To take ownership of this branch and push updates:

git remote add upstream https://github.com/Expensify/App.git
git fetch upstream claude-previewDisabledSubmitPreventSelfApproval
git checkout -b claude-previewDisabledSubmitPreventSelfApproval upstream/claude-previewDisabledSubmitPreventSelfApproval
git push -u origin claude-previewDisabledSubmitPreventSelfApproval

Then you can close this PR and open a new one from your fork.

@MelvinBot

MelvinBot commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor Author

🤖 Android test steps verification results: ✅ pass

PR #101148's disabled-Submit-button fix for self-approval prevention works correctly on Android: both the report preview card Submit button and the report header Submit button become disabled when "Prevent self-approvals" is on and the submitter is the sole approver, and both re-enable when the setting is turned off.
Report header Submit button enabled with 'Waiting for you to submit expenses' message

Step Status
In Workspace settings > Workflows, "Prevent self-approvals" can be enabled and shows as enabled.Workflows > Advanced tab shows the "Prevent self-approvals" switch toggled to green/on after tapping it (required a one-time Control-plan upgrade prompt, accepted via the test-env free upgrade flow).
Prevent self-approvals toggle enabled (green) in Workflows > Advanced
✅
In the workspace chat, an expense can be created and a report preview card appears.Created a manual $25.00 "Test Merchant" / Car expense via the workspace chat + button; a MoneyRequestReportPreviewContent card ("Expense Report 2026-09-15", Draft, 1 expense) rendered in the chat.
Report preview card with disabled Submit button next to View
✅
The report preview card in the chat shows a Submit button that is disabled, next to the View button.Snapshot showed [button] "Submit" [disabled] next to [button] "View"; the screenshot shows the Submit pill visually faded/light-green compared to the solid View button.
Disabled (faded) Submit button next to View button in preview card
✅
Opening the expense report, the header Submit button is also disabled, matching the preview.Snapshot showed [button] "Submit" [disabled] in the report header; the screenshot shows the faded Submit pill plus the explanatory text "Oops! Looks like you're submitting to yourself. Approving your own reports is forbidden by your workspace."
Disabled header Submit button with self-approval-forbidden explanation
✅
Turning "Prevent self-approvals" off makes both Submit buttons enabled again.After toggling the switch off in Workflows > Advanced, the preview card Submit button lost its disabled attribute (solid green) and the report header Submit button also lost it, now showing "Waiting for you to submit expenses." instead of the self-approval warning.
Prevent self-approvals toggle disabled (grey/off)
Preview card Submit button enabled (solid green)
Report header Submit button enabled with 'Waiting for you to submit expenses' message
✅

No console errors were observed. Verified on standalone Android NewDot (not the HybridApp shell).


view run · no recording available

@MelvinBot

MelvinBot commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor Author

🤖 Web test steps verification results: ✅ pass

PR #101148's fix works as intended on dev NewDot web: with "Prevent self-approvals" enabled and the workspace admin as the sole submitter/approver, both the report preview card's Submit button and the report header's Submit button render disabled with a clear "submitting to yourself" warning. Disabling the setting re-enables both buttons.
Report header Submit button enabled after disabling the setting

Step Status
In Workspace settings > Workflows > Advanced, "Prevent self-approvals" can be enabled and shows as enabled.The workspace was upgraded to the Control plan (required to unlock Advanced Approvals) via the in-app free dev upgrade, then the "Prevent self-approvals" toggle was switched on and rendered green/enabled on the Advanced tab of Workflows.
Prevent self-approvals toggle enabled in Workflows > Advanced
✅
In the workspace chat, an expense can be created and a report preview card appears.Created a $25.00 "Test Merchant" manual expense from the submitter-to-workspace chat; a Draft "Expense Report 2026-09-15" preview card appeared in the chat with Submit and View buttons.
Report preview card created in workspace chat
✅
The report preview card in the chat shows a Submit button that is disabled, next to the View button.Accessibility snapshot showed [button] "Submit" [disabled] immediately next to [button] "View" (enabled) on the preview card.
Report opened showing disabled Submit and self-approval warning banner
✅
Opening the expense report, the header Submit button is also disabled, matching the preview.Snapshot showed [button] "Submit" [disabled] in the report header, alongside an explicit banner: "Oops! Looks like you're submitting to yourself. Approving your own reports is forbidden by your workspace. Please submit this report to someone else or contact your admin to change the person you submit to."
Report header Submit button disabled with self-approval warning
✅
Turning "Prevent self-approvals" off makes both Submit buttons enabled again.After toggling the setting off in Workflows > Advanced, the preview card's Submit button showed [button] "Submit" with no disabled attribute, and the report header's Submit button likewise lost the disabled attribute, with the self-approval banner replaced by a generic "Waiting for you to fix the issues" message about the missing category.
Preview card Submit button enabled after disabling the setting
Report header Submit button enabled after disabling the setting
✅

No JS console errors were surfaced during the run. Note that the web driver has no dedicated console-log capture, so this reflects what appeared through UI and network error surfaces rather than an exhaustive console dump.


view run · no recording available

@thelullabyy

Copy link
Copy Markdown
Contributor

@MelvinBot Could you please merge main and then replace all [ ] by [x] in PR description

…dSubmitPreventSelfApproval

Co-authored-by: thelullabyy <thelullabyy@users.noreply.github.com>
@MelvinBot

Copy link
Copy Markdown
Contributor Author

Done:

  • Merged main into this branch with no conflicts and pushed it (ffc31e0).
  • Changed all 40 [ ] checkboxes in the PR description to [x]. Nothing else in the description changed.

The Tests, Offline tests, and QA Steps sections still have their // TODO placeholders for you to fill in.

@madmax330
madmax330 marked this pull request as ready for review September 28, 2026 17:12
@madmax330
madmax330 requested a review from a team as a code owner September 28, 2026 17:12
@melvin-bot
melvin-bot Bot requested review from thelullabyy and trjExpensify and removed request for a team September 28, 2026 17:12
@melvin-bot

melvin-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown

@thelullabyy Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@melvin-bot
melvin-bot Bot removed the request for review from a team September 28, 2026 17:12

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ffc31e0d8f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +146 to +149
// The submitter keeps the SUBMIT action on a prevent-self-approval workspace, matching isSubmitAction in
// ReportPrimaryActionUtils. SubmitActionButton then mounts and renders itself disabled. Returning VIEW here instead
// would hide the preview's Submit button entirely while the report header still shows a disabled one.
it('canSubmit should return true for the submitter when the workspace prevents self-approval', async () => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Document the new test cases with Given/When/Then

Add the required // Given, // When, and // Then comments to both new self-approval test cases. The explanatory comment above this case does not provide those three structured steps, and the following non-submitter case has none, so the added tests do not meet the repository's mandatory test-documentation convention.

AGENTS.md reference: AGENTS.md:L3-L3

Useful? React with 👍 / 👎.

@trjExpensify trjExpensify left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@DylanDylann this PR just hit main, how redundant is this now? #101845

@DylanDylann

Copy link
Copy Markdown
Contributor

Ahh yes, looks like my PR also fixes this issue. @thelullabyy can you reproduce #100709 on the latest main now?

@thelullabyy

Copy link
Copy Markdown
Contributor

Submit button is now gone. We are good to close right? @DylanDylann @trjExpensify

Screen.Recording.2026-10-04.at.20.39.52.mov

@trjExpensify

Copy link
Copy Markdown
Contributor

Mhm, why is it "gone"? Shouldn't it be there, disabled, with nextSteps reading like this video shows:

image

@thelullabyy

Copy link
Copy Markdown
Contributor

@DylanDylann could you please take a look?

@DylanDylann

Copy link
Copy Markdown
Contributor

@thelullabyy Something may have changed recently. Could you check the codebase again to find out why?

@thelullabyy

Copy link
Copy Markdown
Contributor

On my list today

@thelullabyy

Copy link
Copy Markdown
Contributor

@MelvinBot Could you please merge main and retest this PR. Looks like new changes caused the Submit button gone

@MelvinBot
MelvinBot requested a review from a team as a code owner October 7, 2026 17:52
@melvin-bot
melvin-bot Bot requested review from madmax330 and removed request for a team October 7, 2026 17:52
@melvin-bot

melvin-bot Bot commented Oct 7, 2026

Copy link
Copy Markdown

@madmax330 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@thelullabyy

Copy link
Copy Markdown
Contributor

@madmax330 Sorry, the PR is not yet ready, I will ping u once it requires your review

@MelvinBot

MelvinBot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor Author

🤖 Web test steps verification results: ❌ fail

I merged main into this PR (merge commit 3c3d2e34c), but the browser retest never ran: the test session could not sign in, because clicking Continue on the sign-in screen sent no request. None of the PR's test steps were reached, so this result says nothing about the fix itself.
Sign-in screen stuck after clicking Continue

Step Status
Enable "Prevent self-approvals" in Workspace > WorkflowsNot reached: the session stayed on the sign-in screen.
❌
Create a manual expense in the workspace chatNot reached.
❌
Report preview shows a disabled Submit button next to ViewNot reached.
❌
Report header Submit button is disabled, with matching next stepsNot reached.
❌
Turning "Prevent self-approvals" off enables both Submit buttonsNot reached.
❌

Why Submit is missing on main: Main still hides it. Nothing new on main removed it. The preview's canSubmit still returns false for the submitter on a prevent-self-approval workspace (ReportPreviewActionUtils.ts:80 is the line this PR fixes). Block Submit when prevent self-approval is on and the submitter is the first approver changed only whether Submit is disabled, through shouldBlockSubmitDueToPreventSelfApproval. It never touched canSubmit, so it does not fix the preview bug. That means testing latest main without this PR shows only View.

After the merge, this PR still returns SUBMIT for the submitter, and SubmitActionButton renders it disabled, which matches the header. CI passes on the merged commit (Jest, typecheck, and ESLint). Please test this PR's branch, not main, to confirm the disabled button. If Submit is missing on this branch, please share a recording.


view run · view recording

@thelullabyy

thelullabyy commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer Checklist

  • I have verified the author checklist is complete (all boxes are checked off).
  • I verified the correct issue is linked in the ### Fixed Issues section above
  • I verified testing steps are clear and they cover the changes made in this PR
    • I verified the steps for local testing are in the Tests section
    • I verified the steps for Staging and/or Production testing are in the QA steps section
    • I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
  • I checked that screenshots or videos are included for tests on all platforms
  • I included screenshots or videos for tests on all platforms
  • I verified that the composer does not automatically focus or open the keyboard on mobile unless explicitly intended. This includes checking that returning the app from the background does not unexpectedly open the keyboard.
  • I verified tests pass on all platforms & I tested again on:
    • Android: HybridApp
    • Android: mWeb Chrome
    • iOS: HybridApp
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
  • I verified proper code patterns were followed (see Reviewing the code)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I verified that this PR follows the guidelines as stated in the Review Guidelines
  • I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • If the PR adds or modifies the UI:
    • I asked an AI agent to review the changes for accessibility issues and addressed its findings.
    • I tested with a screen reader (VoiceOver on macOS) and verified all new/changed elements are reachable with a logical focus order.
    • I verified all new/changed elements have meaningful accessible names and roles.
    • I verified state changes are announced (e.g. checked/unchecked, expanded/collapsed, selected).
  • For any bug fix or new feature in this PR, I verified that sufficient unit tests are included to prevent regressions in this flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
  • I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

iOS: HybridApp
Screen.Recording.2026-10-08.at.01.12.33.mov
iOS: mWeb Safari
Screen.Recording.2026-10-08.at.01.08.45.mov
MacOS: Chrome / Safari
Screen.Recording.2026-10-08.at.01.07.09.mov

@thelullabyy

Copy link
Copy Markdown
Contributor

@trjExpensify The submit button is back on staging now, however, I think it doesn't include the fix for this issue #100709

So this PR is still needed

Screen.Recording.2026-10-08.at.01.13.41.mov

@thelullabyy

Copy link
Copy Markdown
Contributor

@madmax330 FYI I approved the PR

@trjExpensify

Copy link
Copy Markdown
Contributor

Fair enough. 👍

@trjExpensify trjExpensify left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@madmax330
madmax330 merged commit de399c9 into main Oct 8, 2026
44 of 46 checks passed
@madmax330
madmax330 deleted the claude-previewDisabledSubmitPreventSelfApproval branch October 8, 2026 12:00
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🚧 madmax330 has triggered a test Expensify/App build. You can view the workflow run here.

@OSBotify

OSBotify commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@OSBotify OSBotify mentioned this pull request Oct 8, 2026
90 tasks done
@OSBotify

OSBotify commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/madmax330 in version: 9.5.6-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@MelvinBot

Copy link
Copy Markdown
Contributor Author

No help site update is needed. This bug fix makes the report preview show the same disabled Submit button the report header already shows when Prevent self-approvals is on, and no article describes the preview's Submit button in this case.


view run

@IuliiaHerets

Copy link
Copy Markdown

Any QA steps here?

cc @madmax330 @trjExpensify @thelullabyy

@thelullabyy

Copy link
Copy Markdown
Contributor

@IuliiaHerets Could u please follow the test steps in Test section?

@OSBotify

OSBotify commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/puneetlath in version: 9.5.6-6 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

Bundle Size Analysis (Sentry):

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

Labels

Melvin-Test-Android Melvin-Test-Web Triggers Melvin to run the testing steps of the PR on web

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants