1
1
import type { MutationEvent } from '@sanity/client'
2
- import { Card , Flex , PortalProvider , studioTheme , ThemeProvider , ToastProvider } from '@sanity/ui'
2
+ import { Card , Flex , PortalProvider } from '@sanity/ui'
3
3
import type { Asset , Tag } from '../../types'
4
4
import groq from 'groq'
5
5
import { useEffect , useState } from 'react'
6
6
import { useDispatch } from 'react-redux'
7
- import { useColorSchemeValue , type AssetSourceComponentProps , type SanityDocument } from 'sanity'
7
+ import { type AssetSourceComponentProps , type SanityDocument } from 'sanity'
8
8
import { TAG_DOCUMENT_NAME } from '../../constants'
9
9
import { AssetBrowserDispatchProvider } from '../../contexts/AssetSourceDispatchContext'
10
10
import useVersionedClient from '../../hooks/useVersionedClient'
@@ -32,47 +32,42 @@ type Props = {
32
32
33
33
const BrowserContent = ( { onClose} : { onClose ?: AssetSourceComponentProps [ 'onClose' ] } ) => {
34
34
const client = useVersionedClient ( )
35
-
36
35
const [ portalElement , setPortalElement ] = useState < HTMLDivElement | null > ( null )
37
-
38
- // Redux
39
36
const dispatch = useDispatch ( )
40
37
41
- // Callbacks
42
- const handleAssetUpdate = ( update : MutationEvent ) => {
43
- const { documentId, result, transition} = update
38
+ useEffect ( ( ) => {
39
+ const handleAssetUpdate = ( update : MutationEvent ) => {
40
+ const { documentId, result, transition} = update
44
41
45
- if ( transition === 'appear' ) {
46
- dispatch ( assetsActions . listenerCreateQueue ( { asset : result as Asset } ) )
47
- }
42
+ if ( transition === 'appear' ) {
43
+ dispatch ( assetsActions . listenerCreateQueue ( { asset : result as Asset } ) )
44
+ }
48
45
49
- if ( transition === 'disappear' ) {
50
- dispatch ( assetsActions . listenerDeleteQueue ( { assetId : documentId } ) )
51
- }
46
+ if ( transition === 'disappear' ) {
47
+ dispatch ( assetsActions . listenerDeleteQueue ( { assetId : documentId } ) )
48
+ }
52
49
53
- if ( transition === 'update' ) {
54
- dispatch ( assetsActions . listenerUpdateQueue ( { asset : result as Asset } ) )
50
+ if ( transition === 'update' ) {
51
+ dispatch ( assetsActions . listenerUpdateQueue ( { asset : result as Asset } ) )
52
+ }
55
53
}
56
- }
57
54
58
- const handleTagUpdate = ( update : MutationEvent ) => {
59
- const { documentId, result, transition} = update
55
+ const handleTagUpdate = ( update : MutationEvent ) => {
56
+ const { documentId, result, transition} = update
60
57
61
- if ( transition === 'appear' ) {
62
- dispatch ( tagsActions . listenerCreateQueue ( { tag : result as Tag } ) )
63
- }
58
+ if ( transition === 'appear' ) {
59
+ dispatch ( tagsActions . listenerCreateQueue ( { tag : result as Tag } ) )
60
+ }
64
61
65
- if ( transition === 'disappear' ) {
66
- dispatch ( tagsActions . listenerDeleteQueue ( { tagId : documentId } ) )
67
- }
62
+ if ( transition === 'disappear' ) {
63
+ dispatch ( tagsActions . listenerDeleteQueue ( { tagId : documentId } ) )
64
+ }
68
65
69
- if ( transition === 'update' ) {
70
- dispatch ( tagsActions . listenerUpdateQueue ( { tag : result as Tag } ) )
66
+ if ( transition === 'update' ) {
67
+ dispatch ( tagsActions . listenerUpdateQueue ( { tag : result as Tag } ) )
68
+ }
71
69
}
72
- }
73
70
74
- // Effects
75
- useEffect ( ( ) => {
76
71
// Fetch assets: first page
77
72
dispatch ( assetsActions . loadPageIndex ( { pageIndex : 0 } ) )
78
73
@@ -97,7 +92,7 @@ const BrowserContent = ({onClose}: {onClose?: AssetSourceComponentProps['onClose
97
92
subscriptionAsset ?. unsubscribe ( )
98
93
subscriptionTag ?. unsubscribe ( )
99
94
}
100
- } , [ ] )
95
+ } , [ client , dispatch ] )
101
96
102
97
return (
103
98
< PortalProvider element = { portalElement } >
@@ -132,7 +127,6 @@ const BrowserContent = ({onClose}: {onClose?: AssetSourceComponentProps['onClose
132
127
133
128
const Browser = ( props : Props ) => {
134
129
const client = useVersionedClient ( )
135
- const scheme = useColorSchemeValue ( )
136
130
137
131
return (
138
132
< ReduxProvider
@@ -141,15 +135,10 @@ const Browser = (props: Props) => {
141
135
document = { props ?. document }
142
136
selectedAssets = { props ?. selectedAssets }
143
137
>
144
- < ThemeProvider scheme = { scheme } theme = { studioTheme } >
145
- < ToastProvider >
146
- < AssetBrowserDispatchProvider onSelect = { props ?. onSelect } >
147
- < GlobalStyle />
148
-
149
- < BrowserContent onClose = { props ?. onClose } />
150
- </ AssetBrowserDispatchProvider >
151
- </ ToastProvider >
152
- </ ThemeProvider >
138
+ < AssetBrowserDispatchProvider onSelect = { props ?. onSelect } >
139
+ < GlobalStyle />
140
+ < BrowserContent onClose = { props ?. onClose } />
141
+ </ AssetBrowserDispatchProvider >
153
142
</ ReduxProvider >
154
143
)
155
144
}
0 commit comments