Skip to content

BDMS-897: In-app bug report and feature request panel#293

Merged
jirhiker merged 6 commits into
stagingfrom
BDMS-897-bug-panel
Jun 12, 2026
Merged

BDMS-897: In-app bug report and feature request panel#293
jirhiker merged 6 commits into
stagingfrom
BDMS-897-bug-panel

Conversation

@jeremyzilar

@jeremyzilar jeremyzilar commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
image

Why

The previous flow sent users to an external Google Form, breaking their context and making it easy to abandon. This replaces it with a panel built directly into the app.

What changed

New: Help & Support slide-out panel

Clicking Get Help in the header, or the bug icon in the sidebar footer, opens a panel with two options:

  • Report a Bug — user describes what happened and picks a severity (Low / Medium / High). The form auto-captures the current page URL, reporter name, browser, and timestamp.
  • Request a Feature — user describes the problem, who would benefit, and what it should do.

Both forms POST to POST /api/feedback on OcotilloAPI (see companion PR OcotilloAPI #717). The API creates a Jira ticket and sends a Slack notification, then returns the ticket key. The panel shows a success state with a link to the ticket.

Removed

  • src/config/bug-report.ts — old Google Form config
  • src/utils/BuildBugReportUrl.ts — old URL builder
  • Google Form wiring from ReportBugButton

Updated

  • public/content/report-a-bug.md — static /report-a-bug page updated to describe the new in-app flow
  • src/components/Button/ReportBugButton.tsx — now opens the panel instead of linking to a form; responsive (icon-only on mobile, icon + "Get Help" text on sm+)
  • src/components/AppShell.tsx — panel state management, both form views, success state

Dependency

This PR requires the API changes in OcotilloAPI #717 to be deployed first, or at the same time.

Before either can go to production, the following env vars must be added to Secret Manager for both staging and production:

Variable Value
JIRA_BASE_URL https://nmbgmr.atlassian.net
JIRA_EMAIL Jira account email used for API auth
JIRA_API_TOKEN Jira API token
JIRA_DEFAULT_PROJECT BDMS (default, can omit)
SLACK_FEEDBACK_WEBHOOK_URL Slack incoming webhook URL — being provided separately. Endpoint works without it and just skips Slack.

Files changed

File Change
src/components/AppShell.tsx Panel component, both form views, success state, cursor fixes
src/components/Button/ReportBugButton.tsx Opens panel, responsive layout, pointer cursor
public/content/report-a-bug.md Updated static page copy
src/config/bug-report.ts Deleted
src/utils/BuildBugReportUrl.ts Deleted
src/config/index.ts Removed deleted export
src/utils/index.ts Removed deleted export

Replaces the Google Form bug reporter with a Help & Support panel built
into the app sidebar. Clicking the bug icon in the sidebar footer (or
the Get Help button in the header) opens a slide-out panel with two
forms: Report a Bug and Request a Feature.

Bug form auto-captures page URL, reporter name, browser, and date/time.
User fills in what happened and picks a severity (Low/Medium/High radio
buttons). Feature form asks for the problem, who would use it, and what
it should do. Both forms POST to /api/feedback on OcotilloAPI, which
creates a JIRA ticket and posts a Slack notification, then returns the
ticket key and link to show in the success state.

Removes the old Google Form wiring: bug-report.ts config,
BuildBugReportUrl.ts utility, and updates the /report-a-bug static page
to describe the new in-app flow.
Gradient borders on the bug and feature buttons (emerald/teal and sky),
larger base font size throughout the panel, severity changed to radio
buttons with Low as the default, orange background on the captured
context box, and the urgent issues email line removed from its box.
@github-actions

Copy link
Copy Markdown

Preview Deployment

Preview URL: https://preview-bdms-897-bug-panel-auejgdbofq-uc.a.run.app

Note: This preview uses the staging API endpoints.

@jeremyzilar jeremyzilar added the enhancement New feature or request label Jun 11, 2026
@TylerAdamMartinez

Copy link
Copy Markdown
Contributor
Grabacion.de.pantalla.2026-06-12.a.la.s.07.05.20.mov

@TylerAdamMartinez TylerAdamMartinez 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.

Looks great. Can't wait to fully test it once DataIntegrationGroup/OcotilloAPI#717 is approved and merged.

@chasetmartin chasetmartin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Like Tyler said, I'm excited to see this in action with the api endpoint!

}),
}
try {
const res = await fetch('/api/feedback', {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

For the POST could handleSubmit use the useCustomMutation hook from Refine? I believe that would route it via the custom method in the ocotilloDataProvider (which I think is setup). You'd get the success/error handling benefits of TanStack Query.

@jirhiker jirhiker merged commit 3dfc4ca into staging Jun 12, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants