Skip to content

Commit 949d5f6

Browse files
committed
fix: notebook2 example
1 parent 495ba8f commit 949d5f6

File tree

5 files changed

+24
-13
lines changed

5 files changed

+24
-13
lines changed

examples/next-js/src/components/NotebookComponent.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import { useJupyter, JupyterReactTheme, Notebook2, NotebookToolbar, CellSidebarExtension, CellSidebarButton } from '@datalayer/jupyter-react';
1010
import { Box } from '@primer/react';
1111
import { PrimerTheme } from './PrimerTheme';
12+
import { useMemo } from 'react';
1213

1314
type INotebookComponentProps = {
1415
colorMode?: 'light' | 'dark';
@@ -22,6 +23,9 @@ export const NotebookComponent = (props: INotebookComponentProps) => {
2223
jupyterServerToken: "60c1661cc408f978c309d04157af55c9588ff9557c9380e4fb50785750703da6",
2324
startDefaultKernel: true,
2425
});
26+
const extensions = useMemo(() => [
27+
new CellSidebarExtension({ factory: CellSidebarButton })
28+
], []);
2529
return (
2630
<>
2731
{ defaultKernel && serviceManager ?
@@ -51,7 +55,7 @@ export const NotebookComponent = (props: INotebookComponentProps) => {
5155
height="500px"
5256
kernelId={defaultKernel.id}
5357
serviceManager={serviceManager}
54-
extensions={[new CellSidebarExtension({ factory: CellSidebarButton })]}
58+
// extensions={extensions}
5559
Toolbar={NotebookToolbar}
5660
/>
5761
</Box>

examples/vite/src/examples/NotebookExample.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* MIT License
55
*/
66

7+
import { useMemo } from 'react';
78
import { Box } from '@primer/react';
89
import { Notebook2, Kernel, NotebookToolbar, CellSidebarExtension, CellSidebarButton } from '@datalayer/jupyter-react';
910
import { ServiceManager } from '@jupyterlab/services';
@@ -17,6 +18,9 @@ type INotebookExampleProps = {
1718

1819
export const NotebookExample = (props: INotebookExampleProps) => {
1920
const { kernel, serviceManager } = props;
21+
const extensions = useMemo(() => [
22+
new CellSidebarExtension({ factory: CellSidebarButton })
23+
], []);
2024
return (
2125
<>
2226
<Box as="h1">A Jupyter Notebook</Box>
@@ -25,7 +29,7 @@ export const NotebookExample = (props: INotebookExampleProps) => {
2529
id={NOTEBOOK_ID}
2630
serviceManager={serviceManager}
2731
kernelId={kernel.id}
28-
extensions={[new CellSidebarExtension({ factory: CellSidebarButton })]}
32+
// extensions={extensions}
2933
Toolbar={NotebookToolbar}
3034
/>
3135
</>

packages/react/src/components/notebook/cell/sidebar/CellSidebarExtension.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export class CellSidebarExtension implements DatalayerNotebookExtension {
125125
protected commands?: CommandRegistry;
126126
protected nbgrader?: boolean;
127127
protected sidebarWidth?: number;
128+
readonly component: null;
128129

129130
/**
130131
* Constructor
@@ -147,8 +148,6 @@ export class CellSidebarExtension implements DatalayerNotebookExtension {
147148
this.sidebarWidth = options.sidebarWidth;
148149
}
149150

150-
readonly component: null;
151-
152151
createNew(panel: NotebookPanel): IDisposable {
153152
// We assume the extension was either created within JupyterLab passing
154153
// the app commands registry or through Datalayer workflow that set it

packages/react/src/examples/Notebook2.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,32 @@
44
* MIT License
55
*/
66

7+
import { useMemo } from 'react';
78
import { createRoot } from 'react-dom/client';
89
import { INotebookContent } from '@jupyterlab/nbformat';
910
import { JupyterReactTheme } from '../theme/JupyterReactTheme';
1011
import { useJupyter } from '../jupyter';
11-
import { NotebookToolbar } from './../components/notebook/toolbar/NotebookToolbar';
12-
import { Notebook2 } from '../components/notebook/Notebook2';
12+
import { Notebook2, CellSidebarExtension, CellSidebarButton } from '../components';
13+
import { CellToolbarExtension } from './extensions';
1314

1415
import nbformat from './notebooks/NotebookExample1.ipynb.json';
1516

16-
const Notebook = () => {
17+
const Notebook2Example = () => {
1718
const { serviceManager } = useJupyter();
19+
const extensions = useMemo(() => [
20+
new CellToolbarExtension(),
21+
new CellSidebarExtension({ factory: CellSidebarButton })
22+
], []);
1823
return (
1924
serviceManager ?
2025
<JupyterReactTheme>
2126
<Notebook2
2227
nbformat={nbformat as INotebookContent}
2328
id="notebook-nbformat-id"
2429
startDefaultKernel
30+
serviceManager={serviceManager}
2531
height="calc(100vh - 2.6rem)" // (Height - Toolbar Height).
26-
cellSidebarMargin={120}
27-
Toolbar={NotebookToolbar}
32+
extensions={extensions}
2833
/*
2934
collaborationServer={{
3035
baseURL: 'https://prod1.datalayer.run',
@@ -33,7 +38,6 @@ const Notebook = () => {
3338
type: 'datalayer'
3439
}}
3540
*/
36-
serviceManager={serviceManager}
3741
/>
3842
</JupyterReactTheme>
3943
:
@@ -45,4 +49,4 @@ const div = document.createElement('div');
4549
document.body.appendChild(div);
4650
const root = createRoot(div);
4751

48-
root.render(<Notebook />);
52+
root.render(<Notebook2Example />);

packages/react/webpack.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const ENTRY =
2020
// './src/app/App';
2121
// './src/examples/Bokeh';
2222
// './src/examples/Bqplot';
23-
'./src/examples/Cell';
23+
// './src/examples/Cell';
2424
// './src/examples/CellLite';
2525
// './src/examples/Cells';
2626
// './src/examples/CellsExecute';
@@ -44,7 +44,7 @@ const ENTRY =
4444
// './src/examples/Kernels';
4545
// './src/examples/Lumino';
4646
// './src/examples/Matplotlib';
47-
// './src/examples/Notebook';
47+
'./src/examples/Notebook';
4848
// './src/examples/Notebook2';
4949
// './src/examples/NotebookCellSidebar';
5050
// './src/examples/NotebookCellToolbar';

0 commit comments

Comments
 (0)