Skip to content

Commit 387ce48

Browse files
authored
ref(feedback): Rename onDialog* to onForm*, remove onActorClick (#9625)
Rename the onDialogOpen and onDialogClose callbacks to onFormOpen and onFormClose to match our defined terminology and remove onActorClick as it's not necessary. Closes #9605
1 parent 51576c2 commit 387ce48

File tree

6 files changed

+35
-48
lines changed

6 files changed

+35
-48
lines changed

packages/feedback/README.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,8 @@ Pass these callbacks when you initialize the Feedback integration:
180180

181181
```javascript
182182
new Feedback({
183-
onActorClick: () => {},
184-
onDialogOpen: () => {},
185-
onDialogClose: () => {},
183+
onFormOpen: () => {},
184+
onFormClose: () => {},
186185
onSubmitSuccess: () => {},
187186
onSubmitError: () => {},
188187
});

packages/feedback/src/integration.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,8 @@ export class Feedback implements Integration {
9999
nameLabel = NAME_LABEL,
100100
successMessageText = SUCCESS_MESSAGE_TEXT,
101101

102-
onActorClick,
103-
onDialogClose,
104-
onDialogOpen,
102+
onFormClose,
103+
onFormOpen,
105104
onSubmitError,
106105
onSubmitSuccess,
107106
}: OptionalFeedbackConfiguration = {}) {
@@ -147,9 +146,8 @@ export class Feedback implements Integration {
147146
namePlaceholder,
148147
successMessageText,
149148

150-
onActorClick,
151-
onDialogClose,
152-
onDialogOpen,
149+
onFormClose,
150+
onFormOpen,
153151
onSubmitError,
154152
onSubmitSuccess,
155153
};

packages/feedback/src/types/index.ts

+4-9
Original file line numberDiff line numberDiff line change
@@ -156,19 +156,14 @@ export interface FeedbackTextConfiguration {
156156
*/
157157
export interface FeedbackCallbacks {
158158
/**
159-
* Callback when dialog is closed
159+
* Callback when form is closed
160160
*/
161-
onDialogClose?: () => void;
161+
onFormClose?: () => void;
162162

163163
/**
164-
* Callback when dialog is opened
164+
* Callback when form is opened
165165
*/
166-
onDialogOpen?: () => void;
167-
168-
/**
169-
* Callback when widget actor is clicked
170-
*/
171-
onActorClick?: () => void;
166+
onFormOpen?: () => void;
172167

173168
/**
174169
* Callback when feedback is successfully submitted

packages/feedback/src/widget/createWidget.ts

+8-12
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ export function createWidget({
153153
if (dialog) {
154154
dialog.open();
155155
isDialogOpen = true;
156-
if (options.onDialogOpen) {
157-
options.onDialogOpen();
156+
if (options.onFormOpen) {
157+
options.onFormOpen();
158158
}
159159
return;
160160
}
@@ -185,8 +185,8 @@ export function createWidget({
185185
showActor();
186186
isDialogOpen = false;
187187

188-
if (options.onDialogClose) {
189-
options.onDialogClose();
188+
if (options.onFormClose) {
189+
options.onFormClose();
190190
}
191191
},
192192
onCancel: () => {
@@ -205,8 +205,8 @@ export function createWidget({
205205
// Hides the default actor whenever dialog is opened
206206
hideActor();
207207

208-
if (options.onDialogOpen) {
209-
options.onDialogOpen();
208+
if (options.onFormOpen) {
209+
options.onFormOpen();
210210
}
211211
} catch (err) {
212212
// TODO: Error handling?
@@ -222,8 +222,8 @@ export function createWidget({
222222
dialog.close();
223223
isDialogOpen = false;
224224

225-
if (options.onDialogClose) {
226-
options.onDialogClose();
225+
if (options.onFormClose) {
226+
options.onFormClose();
227227
}
228228
}
229229
}
@@ -251,10 +251,6 @@ export function createWidget({
251251

252252
// Hide actor button
253253
hideActor();
254-
255-
if (options.onActorClick) {
256-
options.onActorClick();
257-
}
258254
}
259255

260256
if (attachTo) {

packages/feedback/test/integration.test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ describe('Feedback integration', () => {
7070
});
7171

7272
it('attaches to a custom actor element', () => {
73-
const onDialogOpen = jest.fn();
73+
const onFormOpen = jest.fn();
7474
// This element is in the normal DOM
7575
const myActor = document.createElement('div');
7676
myActor.textContent = 'my button';
@@ -79,15 +79,15 @@ describe('Feedback integration', () => {
7979
let widget = feedback.getWidget();
8080
expect(widget).toBe(null);
8181

82-
feedback.attachTo(myActor, { onDialogOpen });
82+
feedback.attachTo(myActor, { onFormOpen });
8383

8484
myActor.dispatchEvent(new Event('click'));
8585

8686
widget = feedback.getWidget();
8787

8888
expect(widget?.dialog?.el).toBeInstanceOf(HTMLDialogElement);
8989
expect(widget?.dialog?.el?.open).toBe(true);
90-
expect(onDialogOpen).toHaveBeenCalledTimes(1);
90+
expect(onFormOpen).toHaveBeenCalledTimes(1);
9191
// This is all we do with `attachTo` (open dialog)
9292
});
9393

packages/feedback/test/widget/createWidget.test.ts

+14-15
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,8 @@ const DEFAULT_OPTIONS = {
4949
nameLabel: NAME_LABEL,
5050
successMessageText: SUCCESS_MESSAGE_TEXT,
5151

52-
onActorClick: jest.fn(),
53-
onDialogClose: jest.fn(),
54-
onDialogOpen: jest.fn(),
52+
onFormClose: jest.fn(),
53+
onFormOpen: jest.fn(),
5554
onSubmitError: jest.fn(),
5655
onSubmitSuccess: jest.fn(),
5756
};
@@ -111,8 +110,8 @@ describe('createWidget', () => {
111110
});
112111

113112
it('clicking on actor opens dialog and hides the actor', () => {
114-
const onDialogOpen = jest.fn();
115-
const { widget } = createShadowAndWidget({ onDialogOpen });
113+
const onFormOpen = jest.fn();
114+
const { widget } = createShadowAndWidget({ onFormOpen });
116115
widget.actor?.el?.dispatchEvent(new Event('click'));
117116

118117
// Dialog is now visible
@@ -121,7 +120,7 @@ describe('createWidget', () => {
121120
// Actor should be hidden
122121
expect(widget.actor?.el?.getAttribute('aria-hidden')).toBe('true');
123122

124-
expect(onDialogOpen).toHaveBeenCalledTimes(1);
123+
expect(onFormOpen).toHaveBeenCalledTimes(1);
125124
});
126125

127126
it('submits feedback successfully', async () => {
@@ -282,8 +281,8 @@ describe('createWidget', () => {
282281
});
283282

284283
it('closes when Cancel button is clicked', () => {
285-
const onDialogClose = jest.fn();
286-
const { widget } = createShadowAndWidget({ onDialogClose });
284+
const onFormClose = jest.fn();
285+
const { widget } = createShadowAndWidget({ onFormClose });
287286

288287
widget.actor?.el?.dispatchEvent(new Event('click'));
289288
expect(widget.dialog?.el).toBeInstanceOf(HTMLDialogElement);
@@ -296,7 +295,7 @@ describe('createWidget', () => {
296295
// Element/component should still exist, but it will be in a closed state
297296
expect(widget.dialog?.el).toBeInstanceOf(HTMLDialogElement);
298297
expect(widget.dialog?.el?.open).toBe(false);
299-
expect(onDialogClose).toHaveBeenCalledTimes(1);
298+
expect(onFormClose).toHaveBeenCalledTimes(1);
300299

301300
// Actor should now be visible too
302301
expect(widget.actor?.el?.getAttribute('aria-hidden')).toBe('false');
@@ -309,8 +308,8 @@ describe('createWidget', () => {
309308
});
310309

311310
it('closes when dialog (background)) is clicked', () => {
312-
const onDialogClose = jest.fn();
313-
const { widget } = createShadowAndWidget({ onDialogClose });
311+
const onFormClose = jest.fn();
312+
const { widget } = createShadowAndWidget({ onFormClose });
314313

315314
widget.actor?.el?.dispatchEvent(new Event('click'));
316315
expect(widget.dialog?.el).toBeInstanceOf(HTMLDialogElement);
@@ -323,7 +322,7 @@ describe('createWidget', () => {
323322
// Element/component should still exist, but it will be in a closed state
324323
expect(widget.dialog?.el).toBeInstanceOf(HTMLDialogElement);
325324
expect(widget.dialog?.el?.open).toBe(false);
326-
expect(onDialogClose).toHaveBeenCalledTimes(1);
325+
expect(onFormClose).toHaveBeenCalledTimes(1);
327326

328327
// Actor should now be visible too
329328
expect(widget.actor?.el?.getAttribute('aria-hidden')).toBe('false');
@@ -336,15 +335,15 @@ describe('createWidget', () => {
336335
});
337336

338337
it('attaches to a custom actor element', () => {
339-
const onDialogOpen = jest.fn();
338+
const onFormOpen = jest.fn();
340339
// This element is in the normal DOM
341340
const myActor = document.createElement('div');
342341
myActor.textContent = 'my button';
343342

344343
const { widget } = createShadowAndWidget(
345344
{
346345
autoInject: false,
347-
onDialogOpen,
346+
onFormOpen,
348347
},
349348
{
350349
attachTo: myActor,
@@ -354,7 +353,7 @@ describe('createWidget', () => {
354353
myActor.dispatchEvent(new Event('click'));
355354
expect(widget.dialog?.el).toBeInstanceOf(HTMLDialogElement);
356355
expect(widget.dialog?.el?.open).toBe(true);
357-
expect(onDialogOpen).toHaveBeenCalledTimes(1);
356+
expect(onFormOpen).toHaveBeenCalledTimes(1);
358357
// This is all we do with `attachTo` (open dialog)
359358
});
360359
});

0 commit comments

Comments
 (0)