Skip to content

Commit 1457ded

Browse files
authored
pass wrapUpdate through useToastState (adobe#7910)
1 parent b78f97e commit 1457ded

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

packages/@react-stately/toast/src/useToastState.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ export interface ToastState<T> {
5757
* of actions, errors, or other events in an application.
5858
*/
5959
export function useToastState<T>(props: ToastStateProps = {}): ToastState<T> {
60-
let {maxVisibleToasts = 1} = props;
61-
let queue = useMemo(() => new ToastQueue<T>({maxVisibleToasts}), [maxVisibleToasts]);
60+
let {maxVisibleToasts = 1, wrapUpdate} = props;
61+
let queue = useMemo(() => new ToastQueue<T>({maxVisibleToasts, wrapUpdate}), [maxVisibleToasts, wrapUpdate]);
6262
return useToastQueue(queue);
6363
}
6464

packages/@react-stately/toast/test/useToastState.test.js

+24
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,28 @@ describe('useToastState', () => {
217217
expect(result.current.visibleToasts.length).toBe(1);
218218
expect(result.current.visibleToasts[0].content).toBe(newValue[0].content);
219219
});
220+
221+
it('should use provided wrapUpdate', () => {
222+
let wrapUpdate = jest.fn(fn => fn());
223+
224+
let {result} = renderHook(() => useToastState({wrapUpdate}));
225+
expect(result.current.visibleToasts).toStrictEqual([]);
226+
227+
act(() => {result.current.add(newValue[0].content, newValue[0].props);});
228+
expect(result.current.visibleToasts[0].content).toBe(newValue[0].content);
229+
230+
expect(wrapUpdate).toHaveBeenCalledTimes(1);
231+
232+
act(() => {result.current.add('Second Toast');});
233+
expect(result.current.visibleToasts.length).toBe(1);
234+
expect(result.current.visibleToasts[0].content).toBe('Second Toast');
235+
236+
expect(wrapUpdate).toHaveBeenCalledTimes(2);
237+
238+
act(() => {result.current.close(result.current.visibleToasts[0].key);});
239+
expect(result.current.visibleToasts.length).toBe(1);
240+
expect(result.current.visibleToasts[0].content).toBe(newValue[0].content);
241+
242+
expect(wrapUpdate).toHaveBeenCalledTimes(3);
243+
});
220244
});

0 commit comments

Comments
 (0)