@@ -20,7 +20,7 @@ import {
2020 DialogContent ,
2121 DialogTitle ,
2222} from "@/components/ui/dialog" ;
23-
23+ import { Switcher } from '../Switcher' ;
2424
2525const ZARR_STORES = {
2626 ESDC : 'https://s3.bgc-jena.mpg.de:9000/esdl-esdc-v3.0.2/esdc-16d-2.5deg-46x72x1440-3.0.2.zarr' ,
@@ -41,7 +41,7 @@ const DescriptionContent = ({
4141 return (
4242 < div className = 'grid gap-1' >
4343 < div className = 'mb-2' >
44- < h1 className = ' text-lg font-bold' >
44+ < h1 className = " text-lg font-bold break-all" >
4545 { title ? title : "Store" }
4646 </ h1 >
4747 < p className = "whitespace-pre-wrap break-words"
@@ -90,13 +90,15 @@ const DatasetOption = ({
9090
9191const Dataset = ( { setOpenVariables} : { setOpenVariables : React . Dispatch < React . SetStateAction < boolean > > } ) => {
9292 const [ showStoreInput , setShowStoreInput ] = useState ( false ) ;
93- const [ showLocalZarrInput , setShowLocalZarrInput ] = useState ( false ) ;
94- const [ showLocalNetCDFInput , setShowLocalNetCDFInput ] = useState ( false ) ;
93+ const [ showLocalInput , setShowLocalInput ] = useState ( false ) ;
9594 const [ popoverSide , setPopoverSide ] = useState < "left" | "top" > ( "left" ) ;
9695 const [ activeOption , setActiveOption ] = useState < string > ( 'ESDC' )
9796 const [ showDescriptionDialog , setShowDescriptionDialog ] = useState < boolean > ( false )
9897 const [ openDescriptionPopover , setOpenDescriptionPopover ] = useState < boolean > ( false )
9998 const [ isSafari , setIsSafari ] = useState < boolean > ( false )
99+ const { useNC} = useZarrStore ( useShallow ( state => ( {
100+ useNC :state . fetchNC
101+ } ) ) )
100102
101103 const { initStore, setInitStore } = useGlobalStore (
102104 useShallow ( ( state ) => ( {
@@ -124,7 +126,7 @@ const Dataset = ({setOpenVariables} : {setOpenVariables: React.Dispatch<React.Se
124126 } , 0 ) ;
125127 }
126128 } , [ ] ) ;
127-
129+ console . log ( activeOption )
128130 return (
129131 < >
130132 < Popover >
@@ -169,8 +171,7 @@ const Dataset = ({setOpenVariables} : {setOpenVariables: React.Dispatch<React.Se
169171 active = { activeOption === 'ESDC' }
170172 onClick = { ( ) => {
171173 setShowStoreInput ( false ) ;
172- setShowLocalZarrInput ( false ) ;
173- setShowLocalNetCDFInput ( false ) ;
174+ setShowLocalInput ( false ) ;
174175 setActiveOption ( 'ESDC' ) ;
175176 setInitStore ( ZARR_STORES . ESDC ) ;
176177 if ( popoverSide === 'top' ) {
@@ -186,8 +187,7 @@ const Dataset = ({setOpenVariables} : {setOpenVariables: React.Dispatch<React.Se
186187 active = { activeOption === 'seasfire' }
187188 onClick = { ( ) => {
188189 setShowStoreInput ( false ) ;
189- setShowLocalZarrInput ( false ) ;
190- setShowLocalNetCDFInput ( false ) ;
190+ setShowLocalInput ( false ) ;
191191 setActiveOption ( 'seasfire' ) ;
192192 setInitStore ( ZARR_STORES . SEASFIRE ) ;
193193 if ( popoverSide === 'top' ) {
@@ -206,8 +206,7 @@ const Dataset = ({setOpenVariables} : {setOpenVariables: React.Dispatch<React.Se
206206 active = { activeOption === 'remote' }
207207 onClick = { ( ) => {
208208 setShowStoreInput ( ( prev ) => ! prev ) ;
209- setShowLocalZarrInput ( false ) ;
210- setShowLocalNetCDFInput ( false ) ;
209+ setShowLocalInput ( false ) ;
211210 setActiveOption ( 'remote' ) ;
212211 } }
213212 >
@@ -245,43 +244,30 @@ const Dataset = ({setOpenVariables} : {setOpenVariables: React.Dispatch<React.Se
245244 </ div >
246245 < div className = "w-full" >
247246 < DatasetOption
248- active = { activeOption === 'localZarr ' }
247+ active = { activeOption === 'local ' }
249248 onClick = { ( ) => {
250- setShowLocalZarrInput ( ( prev ) => ! prev ) ;
249+ setShowLocalInput ( ( prev ) => ! prev ) ;
251250 setShowStoreInput ( false ) ;
252- setShowLocalNetCDFInput ( false ) ;
253- setActiveOption ( 'localZarr' ) ;
251+ setActiveOption ( 'local' ) ;
254252 } }
255253 >
256- Local Zarr
254+ Local
257255 </ DatasetOption >
258- { showLocalZarrInput &&
256+ { showLocalInput &&
259257 < div className = "mt-2" >
260- { isSafari ?
261- < div className = "p-3 rounded-md border border-yellow-600 text-tiny max-w-[300px]" >
262- < strong > Local folder upload is not supported in Safari.</ strong > Please use Chrome, Firefox, or Edge instead.
263- </ div >
264- :
265- < LocalZarr setShowLocal = { setShowLocalZarrInput } setOpenVariables = { popoverSide === 'top' ? setShowDescriptionDialog : setOpenDescriptionPopover } setInitStore = { setInitStore } />
266- }
267- </ div >
268- }
269- </ div >
270- < div className = "w-full" >
271- < DatasetOption
272- active = { activeOption === 'localNetCDF' }
273- onClick = { ( ) => {
274- setShowLocalNetCDFInput ( ( prev ) => ! prev ) ;
275- setShowStoreInput ( false ) ;
276- setShowLocalZarrInput ( false ) ;
277- setActiveOption ( 'localNetCDF' ) ;
278- } }
279- >
280- Local NetCDF
281- </ DatasetOption >
282- { showLocalNetCDFInput &&
283- < div className = "mt-2" >
284- < LocalNetCDF setShowLocal = { setShowLocalNetCDFInput } setOpenVariables = { popoverSide === 'top' ? setShowDescriptionDialog : setOpenDescriptionPopover } />
258+ < >
259+ < Switcher leftText = 'Zarr' rightText = 'NetCDF' state = { ! useNC } onClick = { ( ) => useZarrStore . setState ( { fetchNC :! useNC } ) } />
260+ {
261+ useNC ?
262+ < LocalNetCDF setShowLocal = { setShowLocalInput } setOpenVariables = { popoverSide === 'top' ? setShowDescriptionDialog : setOpenDescriptionPopover } />
263+ : isSafari ?
264+ < div className = "p-3 rounded-md border border-yellow-600 text-tiny max-w-[300px]" >
265+ < strong > Local folder upload is not supported in Safari.</ strong > Please use Chrome, Firefox, or Edge instead.
266+ </ div >
267+ :
268+ < LocalZarr setShowLocal = { setShowLocalInput } setOpenVariables = { popoverSide === 'top' ? setShowDescriptionDialog : setOpenDescriptionPopover } setInitStore = { setInitStore } />
269+ }
270+ </ >
285271 </ div >
286272 }
287273 </ div >
@@ -295,7 +281,7 @@ const Dataset = ({setOpenVariables} : {setOpenVariables: React.Dispatch<React.Se
295281 < div
296282 className = "absolute -top-8"
297283 style = { {
298- left : [ 'localZarr' , 'localNetCDF ', 'remote' ] . includes ( activeOption ) ? - 215 : - 130 ,
284+ left : [ 'local ' , 'remote' ] . includes ( activeOption ) ? - 215 : - 130 ,
299285 } }
300286 />
301287 </ PopoverTrigger >
0 commit comments