File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import { useEffect, useState } from 'react';
66import events from './events' ;
77import observableEvents from './observables' ;
88import useActions from './hooks/useActions' ;
9+ import { usePreferences } from './hooks/usePreferences' ;
910
1011const styles = {
1112 container : css `
@@ -38,9 +39,8 @@ const testData = {
3839
3940export default function NMRiumWrapper ( ) {
4041 const [ data , setDate ] = useState < NMRiumData > ( ) ;
41-
42+ const { workspace , preferences } = usePreferences ( ) ;
4243 const actionHandler = useActions ( ) ;
43-
4444 useEffect ( ( ) => {
4545 const unsubscribe = observableEvents . subscribe ( 'load' , ( _data ) => {
4646 // eslint-disable-next-line no-console
@@ -84,15 +84,8 @@ export default function NMRiumWrapper() {
8484 < NMRium
8585 data = { data }
8686 onDataChange = { actionHandler }
87- preferences = { {
88- toolBarButtons : {
89- import : true ,
90- exportAs : true ,
91- } ,
92- panels : {
93- multipleSpectraAnalysisPanel : { hidden : true } ,
94- } ,
95- } }
87+ preferences = { preferences }
88+ workspace = { workspace }
9689 />
9790 </ div >
9891 </ div >
Original file line number Diff line number Diff line change 1+ import { NMRiumPreferences , NMRiumWorkspace } from 'nmrium' ;
2+ import { useLayoutEffect , useState } from 'react' ;
3+
4+ export function usePreferences ( ) {
5+ const [ configuration , setConfiguration ] = useState < {
6+ preferences : NMRiumPreferences ;
7+ workspace : NMRiumWorkspace ;
8+ } > ( { preferences : { } , workspace : 'default' } ) ;
9+
10+ useLayoutEffect ( ( ) => {
11+ const { href } = window . location ;
12+ const parameters = new URL ( href ) . searchParams ;
13+
14+ let preferences : NMRiumPreferences = { } ;
15+ let workspace : NMRiumWorkspace = 'default' ;
16+
17+ if ( parameters . has ( 'workspace' ) ) {
18+ workspace = parameters . get ( 'workspace' ) as NMRiumWorkspace ;
19+ }
20+ if ( parameters . has ( 'preferences' ) ) {
21+ preferences = JSON . parse (
22+ parameters . get ( 'preferences' ) || '' ,
23+ ) as NMRiumPreferences ;
24+ }
25+ setConfiguration ( { preferences, workspace } ) ;
26+ } , [ ] ) ;
27+
28+ return configuration ;
29+ }
You can’t perform that action at this time.
0 commit comments