@@ -82,7 +82,7 @@ const MediaFields = ({ modal }) => {
82
82
) ;
83
83
const mediaFields = useRecoilValue ( fos . mediaFields ) ;
84
84
85
- if ( mediaFields . length <= 1 ) return null ;
85
+ if ( ! mediaFields || mediaFields ? .length <= 1 ) return null ;
86
86
87
87
return (
88
88
< >
@@ -148,40 +148,56 @@ const SidebarMode = () => {
148
148
} ;
149
149
150
150
const DynamicGroupsViewMode = ( { modal } : { modal : boolean } ) => {
151
- const [ mode , setMode ] = useRecoilState ( fos . nonNestedDynamicGroupsViewMode ) ;
152
- const isImaVidLookerAvailable = useRecoilValue ( fos . isImaVidLookerAvailable ) ;
151
+ const isOrderedDynamicGroup = useRecoilValue ( fos . isOrderedDynamicGroup ) ;
152
+ const hasGroupSlices = useRecoilValue ( fos . hasGroupSlices ) ;
153
+
154
+ const [ mode , setMode ] = useRecoilState ( fos . dynamicGroupsViewMode ) ;
155
+ const setIsCarouselVisible = useSetRecoilState (
156
+ fos . groupMediaIsCarouselVisibleSetting
157
+ ) ;
158
+ const setIsMainVisible = useSetRecoilState (
159
+ fos . groupMediaIsMainVisibleSetting
160
+ ) ;
153
161
154
162
const tabOptions = useMemo ( ( ) => {
155
163
const options = [
156
- {
157
- text : "carousel" ,
158
- title : "Sequential Access" ,
159
- onClick : ( ) => setMode ( "carousel" ) ,
160
- } ,
161
164
{
162
165
text : "pagination" ,
163
166
title : "Random Access" ,
164
167
onClick : ( ) => setMode ( "pagination" ) ,
165
168
} ,
166
169
] ;
167
170
168
- if ( isImaVidLookerAvailable ) {
171
+ if ( ! hasGroupSlices ) {
172
+ options . push ( {
173
+ text : "carousel" ,
174
+ title : "Sequential Access" ,
175
+ onClick : ( ) => {
176
+ setMode ( "carousel" ) ;
177
+ setIsCarouselVisible ( true ) ;
178
+ } ,
179
+ } ) ;
180
+ }
181
+
182
+ if ( isOrderedDynamicGroup ) {
169
183
options . push ( {
170
184
text : "video" ,
171
185
title : "Video" ,
172
- onClick : ( ) => setMode ( "video" ) ,
186
+ onClick : ( ) => {
187
+ setMode ( "video" ) ;
188
+ setIsMainVisible ( true ) ;
189
+ } ,
173
190
} ) ;
174
191
}
175
192
176
193
return options ;
177
- } , [ isImaVidLookerAvailable ] ) ;
194
+ } , [ isOrderedDynamicGroup , hasGroupSlices ] ) ;
178
195
179
196
return (
180
197
< >
181
198
< PopoutSectionTitle > Dynamic Groups Navigation</ PopoutSectionTitle >
182
- { modal ? (
183
- < TabOption active = { mode } options = { tabOptions } />
184
- ) : (
199
+ { modal && < TabOption active = { mode } options = { tabOptions } /> }
200
+ { isOrderedDynamicGroup && ! modal && (
185
201
< Checkbox
186
202
name = { "Render frames as video" }
187
203
value = { mode === "video" }
@@ -269,6 +285,36 @@ const Lightning = () => {
269
285
) ;
270
286
} ;
271
287
288
+ const HideFieldSetting = ( ) => {
289
+ const [ hideNone , setHideNone ] = useRecoilState ( fos . hideNoneValuedFields ) ;
290
+ const theme = useTheme ( ) ;
291
+
292
+ return (
293
+ < >
294
+ < ActionOption
295
+ id = "hide-none-valued-field-setting"
296
+ text = "Hide None fields"
297
+ title = { "More on hiding none fields" }
298
+ style = { {
299
+ background : "unset" ,
300
+ color : theme . text . primary ,
301
+ paddingTop : 0 ,
302
+ paddingBottom : 0 ,
303
+ } }
304
+ svgStyles = { { height : "1rem" , marginTop : 7.5 } }
305
+ />
306
+ < TabOption
307
+ active = { hideNone ? "enable" : "disable" }
308
+ options = { [ "disable" , "enable" ] . map ( ( value ) => ( {
309
+ text : value ,
310
+ title : value ,
311
+ onClick : ( ) => setHideNone ( value === "enable" ? true : false ) ,
312
+ } ) ) }
313
+ />
314
+ </ >
315
+ ) ;
316
+ } ;
317
+
272
318
type OptionsProps = {
273
319
modal : boolean ;
274
320
anchorRef : RefObject < HTMLElement > ;
@@ -277,12 +323,12 @@ type OptionsProps = {
277
323
const Options = ( { modal, anchorRef } : OptionsProps ) => {
278
324
const isGroup = useRecoilValue ( fos . isGroup ) ;
279
325
const isDynamicGroup = useRecoilValue ( fos . isDynamicGroup ) ;
280
- const isNonNestedDynamicGroup = useRecoilValue ( fos . isNonNestedDynamicGroup ) ;
281
326
const view = useRecoilValue ( fos . view ) ;
282
327
283
328
return (
284
329
< Popout modal = { modal } fixed anchorRef = { anchorRef } >
285
- { isNonNestedDynamicGroup && < DynamicGroupsViewMode modal = { modal } /> }
330
+ { modal && < HideFieldSetting /> }
331
+ { isDynamicGroup && < DynamicGroupsViewMode modal = { modal } /> }
286
332
{ isGroup && ! isDynamicGroup && < GroupStatistics modal = { modal } /> }
287
333
< MediaFields modal = { modal } />
288
334
< Patches modal = { modal } />
0 commit comments