playbook_ui 14.16.0.pre.alpha.PBNTR881advancedtablefullscreen6929 → 14.16.0.pre.alpha.PBNTR881advancedtablefullscreen6934

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a8fbad59b6bcf213da8999442155913c3562e141c07d59a2b726122fb3b7644
4
- data.tar.gz: cb01f14fa0d0b7bbfa98f7c8ebacea874e45e1dc307008bf523ae3a3b29976a4
3
+ metadata.gz: 7e6ae8dabe0a1aa24faea68ee263457d677481e8fb49058ef3bf98cb34d13509
4
+ data.tar.gz: aea28cf93c519443b913371efb9f7e36399b55ead106a9914698077d78df686f
5
5
  SHA512:
6
- metadata.gz: d6c879326332cde7cb15cc39915c01b998ba6ed799d088baa3222d7d66d0e87d63c85924203473cd35527e97a16139b62e1029be7b6b3f3e0b4c4399e97ac6d6
7
- data.tar.gz: c9a5f2bdfa46a82adce264fbcf347562a8387d0c88a74174e502ec1f02826f3ca4f57ce0f3f78828b627bb2e8cbd5b7b926217ef65e41745790feb8e571bb1be
6
+ metadata.gz: da72830c3590d1df9419ecb3d6310ef1513b16186c5bb12fcd42fdb6bca29b293c10f422ca18e618587f384bd618fe3b1487e7b90f8b7d8eaf1960f880a380ab
7
+ data.tar.gz: d75d70f4ae579220897598329343fa90978182a202efa1c29e46ccf51cdafc9b70a7b08624a89c5cda1b5a729519b5a58b9e2ca340136b87188079d0dea54f22
@@ -3,15 +3,4 @@ import { ExpandedState } from "@tanstack/react-table"
3
3
  export type ExpandedStateObject = Extract<
4
4
  ExpandedState,
5
5
  Record<string, boolean>
6
- >
7
-
8
- declare global {
9
- interface Document {
10
- webkitExitFullscreen?: () => Promise<void>
11
- msExitFullscreen?: () => Promise<void>
12
- webkitRequestFullscreen?: () => Promise<void>
13
- msRequestFullscreen?: () => Promise<void>
14
- webkitFullscreenElement?: Element | null
15
- msFullscreenElement?: Element | null
16
- }
17
- }
6
+ >
@@ -232,10 +232,14 @@
232
232
  }
233
233
 
234
234
  // Fullscreen
235
+ &.advanced-table-allow-fullscreen {
236
+ transition: all 0.3s ease;
237
+ }
238
+
235
239
  &.advanced-table-fullscreen {
236
240
  background-color: $border_light;
237
241
  box-sizing: border-box;
238
- height: 100%;
242
+ height: 100vh;
239
243
  left: 0;
240
244
  overflow: auto;
241
245
  position: fixed;
@@ -162,73 +162,15 @@ const AdvancedTable = (props: AdvancedTableProps) => {
162
162
  // Fullscreen
163
163
  const [isFullscreen, setIsFullscreen] = useState(false)
164
164
 
165
- const enterFullscreen = useCallback(async () => {
166
- const element = tableWrapperRef.current
167
- if (!element) return
168
-
169
- try {
170
- if (element.requestFullscreen) {
171
- await element.requestFullscreen()
172
- } else if ((element as any).webkitRequestFullscreen) {
173
- await (element as any).webkitRequestFullscreen()
174
- } else if ((element as any).msRequestFullscreen) {
175
- await (element as any).msRequestFullscreen()
176
- }
177
- } catch (error) {
178
- console.error('Error attempting to enable fullscreen:', error)
179
- }
180
- }, [])
181
-
182
- const exitFullscreen = useCallback(async () => {
183
- try {
184
- if (document.exitFullscreen) {
185
- await document.exitFullscreen()
186
- } else if ((document as any).webkitExitFullscreen) {
187
- await (document as any).webkitExitFullscreen()
188
- } else if ((document as any).msExitFullscreen) {
189
- await (document as any).msExitFullscreen()
190
- }
191
- } catch (error) {
192
- console.error('Error exiting fullscreen:', error)
193
- }
194
- }, [])
195
-
196
165
  const toggleFullscreen = useCallback(() => {
197
- if (isFullscreen) {
198
- exitFullscreen()
199
- } else {
200
- enterFullscreen()
201
- }
202
- }, [isFullscreen, enterFullscreen, exitFullscreen])
203
-
204
- const handleFullscreenChange = useCallback(() => {
205
- const isCurrentlyFullscreen = !!(
206
- document.fullscreenElement ||
207
- (document as any).webkitFullscreenElement ||
208
- (document as any).msFullscreenElement
209
- )
210
- setIsFullscreen(isCurrentlyFullscreen)
166
+ setIsFullscreen(prevState => !prevState)
211
167
  }, [])
212
168
 
213
169
  useEffect(() => {
214
- if (!allowFullScreen) return
215
-
216
- document.addEventListener('fullscreenchange', handleFullscreenChange)
217
- document.addEventListener('webkitfullscreenchange', handleFullscreenChange)
218
- document.addEventListener('msfullscreenchange', handleFullscreenChange)
219
-
220
- return () => {
221
- document.removeEventListener('fullscreenchange', handleFullscreenChange)
222
- document.removeEventListener('webkitfullscreenchange', handleFullscreenChange)
223
- document.removeEventListener('msfullscreenchange', handleFullscreenChange)
224
- }
225
- }, [allowFullScreen, handleFullscreenChange])
226
-
227
- useEffect(() => {
228
- if (fullScreenControl && allowFullScreen) {
229
- fullScreenControl({
230
- toggleFullscreen,
231
- isFullscreen
170
+ if (allowFullScreen && fullScreenControl) {
171
+ fullScreenControl({
172
+ toggleFullscreen,
173
+ isFullscreen
232
174
  })
233
175
  }
234
176
  }, [allowFullScreen, fullScreenControl, toggleFullscreen, isFullscreen])
@@ -264,6 +206,20 @@ const AdvancedTable = (props: AdvancedTableProps) => {
264
206
  )
265
207
  }
266
208
 
209
+ useEffect(() => {
210
+ if (!allowFullScreen) return
211
+
212
+ const handleKeyDown = (event: KeyboardEvent) => {
213
+ if (event.key === 'Escape' && isFullscreen) {
214
+ event.preventDefault()
215
+ toggleFullscreen()
216
+ }
217
+ }
218
+ document.addEventListener('keydown', handleKeyDown)
219
+ return () => {
220
+ document.removeEventListener('keydown', handleKeyDown)
221
+ }
222
+ }, [allowFullScreen, toggleFullscreen, isFullscreen])
267
223
 
268
224
  // Build CSS classes and props
269
225
  const ariaProps = buildAriaProps(aria);