diff --git a/packages/app/cypress.config.ts b/packages/app/cypress.config.ts index 6d530adf..22ab95a1 100644 --- a/packages/app/cypress.config.ts +++ b/packages/app/cypress.config.ts @@ -19,7 +19,7 @@ export default defineConfig({ testIsolation: false, baseUrl: 'http://localhost:3000', specPattern: 'cypress/e2e/**/*.cy.ts', - supportFile: false, + supportFile: 'cypress/support/e2e.ts', setupNodeEvents(on, config) { on( 'file:preprocessor', diff --git a/packages/app/cypress/support/e2e.ts b/packages/app/cypress/support/e2e.ts new file mode 100644 index 00000000..d8209e33 --- /dev/null +++ b/packages/app/cypress/support/e2e.ts @@ -0,0 +1,16 @@ +/** + * Global e2e setup. Loaded before every `cy.visit` via `supportFile` in + * `cypress.config.ts`. + * + * Snoozes the feedback-modal nudge so it doesn't render its centered modal + * + backdrop on top of the UI under test. Specs that want to exercise the + * feedback-modal flow can clear `inferencex-feedback-modal-snoozed` in their + * own `onBeforeLoad`. + */ +Cypress.on('window:before:load', (win) => { + try { + win.localStorage.setItem('inferencex-feedback-modal-snoozed', String(Date.now())); + } catch { + // localStorage unavailable — fine, the test will just see the modal. + } +}); diff --git a/packages/app/src/components/feedback-modal.tsx b/packages/app/src/components/feedback-modal.tsx index 56a80129..990e2867 100644 --- a/packages/app/src/components/feedback-modal.tsx +++ b/packages/app/src/components/feedback-modal.tsx @@ -105,7 +105,7 @@ export function FeedbackForm({ onDismiss }: FeedbackFormProps) { Help us improve InferenceX

- You're a regular! We'd love to hear what's working and what isn't. + We'd love to hear what's working and what isn't.

diff --git a/packages/app/src/components/nudge-engine.tsx b/packages/app/src/components/nudge-engine.tsx index 6108311a..ef066307 100644 --- a/packages/app/src/components/nudge-engine.tsx +++ b/packages/app/src/components/nudge-engine.tsx @@ -355,15 +355,20 @@ function ModalRenderer({ const { content } = def; const Icon = content.icon; const idPrefix = def.id; + const centered = content.centered; - return ( + const dialog = (