@tamagui/toast 1.8.2 → 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
-
2
1
  import { createCollection } from '@tamagui/collection'
3
2
  import { TamaguiElement, useId } from '@tamagui/core'
4
3
  import type { Scope } from '@tamagui/create-context'
@@ -6,7 +5,6 @@ import { createContextScope } from '@tamagui/create-context'
6
5
  import { PortalProvider } from '@tamagui/portal'
7
6
  import * as React from 'react'
8
7
 
9
-
10
8
  /* -------------------------------------------------------------------------------------------------
11
9
  * ToastProvider
12
10
  * -----------------------------------------------------------------------------------------------*/
@@ -87,31 +85,29 @@ const ToastProvider: React.FC<ToastProviderProps> = (
87
85
  const isClosePausedRef = React.useRef(false)
88
86
 
89
87
  return (
90
- <PortalProvider shouldAddRootHost={false} rootHostName="default">
91
- <Collection.Provider scope={__scopeToast}>
92
- <ToastProviderProvider
93
- scope={__scopeToast}
94
- id={id}
95
- label={label}
96
- duration={duration}
97
- swipeDirection={swipeDirection}
98
- swipeThreshold={swipeThreshold}
99
- toastCount={toastCount}
100
- viewport={viewport}
101
- onViewportChange={setViewport}
102
- onToastAdd={React.useCallback(() => {
103
- setToastCount((prevCount) => prevCount + 1)
104
- }, [])}
105
- onToastRemove={React.useCallback(() => {
106
- setToastCount((prevCount) => prevCount - 1)
107
- }, [])}
108
- isFocusedToastEscapeKeyDownRef={isFocusedToastEscapeKeyDownRef}
109
- isClosePausedRef={isClosePausedRef}
110
- >
111
- {children}
112
- </ToastProviderProvider>
113
- </Collection.Provider>
114
- </PortalProvider>
88
+ <Collection.Provider scope={__scopeToast}>
89
+ <ToastProviderProvider
90
+ scope={__scopeToast}
91
+ id={id}
92
+ label={label}
93
+ duration={duration}
94
+ swipeDirection={swipeDirection}
95
+ swipeThreshold={swipeThreshold}
96
+ toastCount={toastCount}
97
+ viewport={viewport}
98
+ onViewportChange={setViewport}
99
+ onToastAdd={React.useCallback(() => {
100
+ setToastCount((prevCount) => prevCount + 1)
101
+ }, [])}
102
+ onToastRemove={React.useCallback(() => {
103
+ setToastCount((prevCount) => prevCount - 1)
104
+ }, [])}
105
+ isFocusedToastEscapeKeyDownRef={isFocusedToastEscapeKeyDownRef}
106
+ isClosePausedRef={isClosePausedRef}
107
+ >
108
+ {children}
109
+ </ToastProviderProvider>
110
+ </Collection.Provider>
115
111
  )
116
112
  }
117
113
 
@@ -128,7 +124,11 @@ ToastProvider.propTypes = {
128
124
  ToastProvider.displayName = PROVIDER_NAME
129
125
 
130
126
  export {
131
- Collection, ToastProvider, createToastContext, createToastScope, useCollection, useToastProviderContext
127
+ Collection,
128
+ ToastProvider,
129
+ createToastContext,
130
+ createToastScope,
131
+ useCollection,
132
+ useToastProviderContext,
132
133
  }
133
134
  export type { ScopedProps, SwipeDirection, ToastProviderProps }
134
-
@@ -79,6 +79,7 @@ const ToastViewport = React.forwardRef<HTMLDivElement, ToastViewportProps>(
79
79
 
80
80
  React.useEffect(() => {
81
81
  if (!isWeb) return
82
+ if (context.toastCount === 0) return
82
83
  const handleKeyDown = (event: KeyboardEvent) => {
83
84
  // we use `event.code` as it is consistent regardless of meta keys that were pressed.
84
85
  // for example, `event.key` for `Control+Alt+t` is `†` and `t !== †`
@@ -86,16 +87,16 @@ const ToastViewport = React.forwardRef<HTMLDivElement, ToastViewportProps>(
86
87
  (key) => (event as any)[key] || event.code === key
87
88
  )
88
89
  if (isHotkeyPressed) ref.current?.focus()
89
- console.log(isHotkeyPressed)
90
90
  }
91
91
  document.addEventListener('keydown', handleKeyDown)
92
92
  return () => {
93
93
  document.removeEventListener('keydown', handleKeyDown)
94
94
  }
95
- }, [hotkey])
95
+ }, [hotkey, context.toastCount])
96
96
 
97
97
  React.useEffect(() => {
98
98
  if (!isWeb) return
99
+ if (context.toastCount === 0) return
99
100
  const wrapper = wrapperRef.current
100
101
  const viewport = ref.current
101
102
  if (hasToasts && wrapper && viewport) {
@@ -143,7 +144,7 @@ const ToastViewport = React.forwardRef<HTMLDivElement, ToastViewportProps>(
143
144
  window.removeEventListener('focus', handleResume)
144
145
  }
145
146
  }
146
- }, [hasToasts, context.isClosePausedRef])
147
+ }, [hasToasts, context.isClosePausedRef, context.toastCount])
147
148
 
148
149
  const getSortedTabbableCandidates = React.useCallback(
149
150
  ({ tabbingDirection }: { tabbingDirection: 'forwards' | 'backwards' }) => {
@@ -166,6 +167,8 @@ const ToastViewport = React.forwardRef<HTMLDivElement, ToastViewportProps>(
166
167
 
167
168
  React.useEffect(() => {
168
169
  if (!isWeb) return
170
+ if (context.toastCount === 0) return
171
+
169
172
  const viewport = ref.current
170
173
  // We programmatically manage tabbing as we are unable to influence
171
174
  // the source order with portals, this allows us to reverse the
@@ -209,7 +212,7 @@ const ToastViewport = React.forwardRef<HTMLDivElement, ToastViewportProps>(
209
212
  viewport.addEventListener('keydown', handleKeyDown)
210
213
  return () => viewport.removeEventListener('keydown', handleKeyDown)
211
214
  }
212
- }, [getItems, getSortedTabbableCandidates])
215
+ }, [getItems, getSortedTabbableCandidates, context.toastCount])
213
216
 
214
217
  return (
215
218
  <ToastViewportWrapperFrame
@@ -75,6 +75,6 @@ interface ToastProviderProps {
75
75
  id?: string;
76
76
  }
77
77
  declare const ToastProvider: React.FC<ToastProviderProps>;
78
- export { Collection, ToastProvider, createToastContext, createToastScope, useCollection, useToastProviderContext };
78
+ export { Collection, ToastProvider, createToastContext, createToastScope, useCollection, useToastProviderContext, };
79
79
  export type { ScopedProps, SwipeDirection, ToastProviderProps };
80
80
  //# sourceMappingURL=ToastProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../src/ToastProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAS,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,QAAA,MAAO,UAAU;;;;;;;;;;GAAE,aAAa;;GACW,CAAA;AAE3C,KAAK,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAA;AAClF,KAAK,yBAAyB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IAChD,UAAU,IAAI,IAAI,CAAA;IAClB,aAAa,IAAI,IAAI,CAAA;IACrB,8BAA8B,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC/D,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;CAClD,CAAA;AAED,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAClD,QAAA,MAAO,kBAAkB;;;;;;;;;qCAAE,gBAAgB,+CAEzC,CAAA;AACF,QAAA,MAA8B,uBAAuB;;;2CACS,CAAA;AAE9D,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6C/C,CAAA;AAcD,OAAO,EACL,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,uBAAuB,EACxG,CAAA;AACD,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../src/ToastProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAS,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,QAAA,MAAO,UAAU;;;;;;;;;;GAAE,aAAa;;GACW,CAAA;AAE3C,KAAK,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAA;AAClF,KAAK,yBAAyB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IAChD,UAAU,IAAI,IAAI,CAAA;IAClB,aAAa,IAAI,IAAI,CAAA;IACrB,8BAA8B,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC/D,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;CAClD,CAAA;AAED,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAClD,QAAA,MAAO,kBAAkB;;;;;;;;;qCAAE,gBAAgB,+CAEzC,CAAA;AACF,QAAA,MAA8B,uBAAuB;;;2CACS,CAAA;AAE9D,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2C/C,CAAA;AAcD,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,GACxB,CAAA;AACD,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../src/ToastViewport.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAIvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,QAAA,MAAM,uBAAuB,UAAS,CAAA;AACtC,QAAA,MAAM,cAAc,wBAAwB,CAAA;AAC5C,QAAA,MAAM,eAAe,yBAAyB,CAAA;AAgB9C,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAMtB,CAAA;AACF,KAAK,uBAAuB,GAAG,QAAQ,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAClE,KAAK,kBAAkB,GAAG,uBAAuB,GAAG;IAClD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,QAAA,MAAM,aAAa;;;;;;;;;;IAjBjB;;;OAGG;;IAEH;;;;OAIG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;IAbH;;;OAGG;;IAEH;;;;OAIG;;IAEH;;OAEG;;iDA8MJ,CAAA;AAqFD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,eAAe,GAChB,CAAA"}
1
+ {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../src/ToastViewport.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAIvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,QAAA,MAAM,uBAAuB,UAAS,CAAA;AACtC,QAAA,MAAM,cAAc,wBAAwB,CAAA;AAC5C,QAAA,MAAM,eAAe,yBAAyB,CAAA;AAgB9C,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAMtB,CAAA;AACF,KAAK,uBAAuB,GAAG,QAAQ,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAClE,KAAK,kBAAkB,GAAG,uBAAuB,GAAG;IAClD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,QAAA,MAAM,aAAa;;;;;;;;;;IAjBjB;;;OAGG;;IAEH;;;;OAIG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;IAbH;;;OAGG;;IAEH;;;;OAIG;;IAEH;;OAEG;;iDAiNJ,CAAA;AAqFD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,eAAe,GAChB,CAAA"}