Skip to content

Commit acd1c87

Browse files
feat: customize the NMRium default empty message
close #125
1 parent f317a4d commit acd1c87

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

src/NMRiumWrapper.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export default function NMRiumWrapper() {
3434
const { allowedOrigins, isFetchAllowedOriginsPending } = useWhiteList();
3535
const nmriumRef = useRef<NMRiumRef>(null);
3636
const [data, setDate] = useState<NMRiumData>();
37-
const { workspace, preferences } = usePreferences();
37+
const { workspace, preferences, defaultEmptyMessage } = usePreferences();
3838
const dataChangeHandler = useCallback<OnNMRiumChange>((state, source) => {
3939
events.trigger('data-change', { state, source });
4040
}, []);
@@ -101,6 +101,8 @@ export default function NMRiumWrapper() {
101101
};
102102
});
103103

104+
console.log(defaultEmptyMessage);
105+
104106
return (
105107
<div style={styles.container}>
106108
{isLoading ||
@@ -115,6 +117,7 @@ export default function NMRiumWrapper() {
115117
onChange={dataChangeHandler}
116118
preferences={preferences}
117119
workspace={workspace}
120+
emptyText={defaultEmptyMessage}
118121
/>
119122
</div>
120123
);

src/hooks/usePreferences.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,41 @@ import { WorkspacePreferences } from 'nmr-load-save';
22
import { NMRiumWorkspace } from 'nmrium';
33
import { useLayoutEffect, useState } from 'react';
44

5+
interface Preferences {
6+
preferences: WorkspacePreferences | undefined;
7+
workspace: NMRiumWorkspace | undefined;
8+
defaultEmptyMessage: string | undefined;
9+
}
10+
11+
const DEFAULT_PREFERENCES = {
12+
preferences: undefined,
13+
workspace: undefined,
14+
defaultEmptyMessage: undefined,
15+
};
16+
517
export function usePreferences() {
6-
const [configuration, setConfiguration] = useState<{
7-
preferences: WorkspacePreferences | undefined;
8-
workspace: NMRiumWorkspace | undefined;
9-
}>({ preferences: undefined, workspace: undefined });
18+
const [configuration, setConfiguration] =
19+
useState<Preferences>(DEFAULT_PREFERENCES);
1020

1121
useLayoutEffect(() => {
1222
const { href } = window.location;
1323
const parameters = new URL(href).searchParams;
1424

1525
let preferences: WorkspacePreferences | undefined;
1626
let workspace: NMRiumWorkspace | undefined;
27+
let defaultEmptyMessage: string | undefined;
1728

1829
if (parameters.has('workspace')) {
1930
workspace = parameters.get('workspace') as NMRiumWorkspace;
2031
}
2132
if (parameters.has('preferences')) {
2233
preferences = JSON.parse(parameters.get('preferences') || '');
2334
}
24-
setConfiguration({ preferences, workspace });
35+
36+
if (parameters.has('defaultEmptyMessage')) {
37+
defaultEmptyMessage = parameters.get('defaultEmptyMessage') as string;
38+
}
39+
setConfiguration({ preferences, workspace, defaultEmptyMessage });
2540
}, []);
2641

2742
return configuration;

0 commit comments

Comments
 (0)