Skip to content

Commit 4c3eadb

Browse files
committed
Clean up
1 parent 1693201 commit 4c3eadb

File tree

10 files changed

+35
-146
lines changed

10 files changed

+35
-146
lines changed

Untitled.ipynb

Lines changed: 0 additions & 59 deletions
This file was deleted.

packages/base/src/commands/index.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,9 +1066,6 @@ export function addCommands(
10661066
: false;
10671067
},
10681068
execute: args => {
1069-
console.log('addLandmark command executing');
1070-
// only want to use one story for now so hardcoding the id for now
1071-
10721069
const storyMapId = UUID.uuid4();
10731070
const newLandmarkId = UUID.uuid4();
10741071
const current = tracker.currentWidget;
@@ -1078,7 +1075,7 @@ export function addCommands(
10781075
const { zoom, extent } = current.model.getOptions();
10791076

10801077
if (!zoom || !extent) {
1081-
console.log('shut up');
1078+
console.log('No extent or zoom found');
10821079
return;
10831080
}
10841081

@@ -1106,11 +1103,10 @@ export function addCommands(
11061103

11071104
current.model.sharedModel.addStoryMap(storyMapId, storyMap);
11081105
} else {
1109-
// else need to update tories
1110-
// get first story
1111-
const story = current.model.getSelectedStory().story;
1106+
// else need to update stories
1107+
const { story } = current.model.getSelectedStory();
11121108
if (!story) {
1113-
console.log('brok');
1109+
console.log('No story found, something went wrong');
11141110
return;
11151111
}
11161112
const newStory: IJGISStoryMap = {
@@ -1182,7 +1178,6 @@ namespace Private {
11821178
return async () => {
11831179
const current = tracker.currentWidget;
11841180

1185-
console.log('current', current);
11861181
if (!current) {
11871182
return;
11881183
}

packages/base/src/mainview/mainView.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2043,13 +2043,15 @@ export class MainView extends React.Component<IProps, IStates> {
20432043
const layer = this.getLayer(id);
20442044
const source = layer?.getSource();
20452045

2046+
// TODO: Landmark layers don't have an associated OL layer
2047+
// This could be better
20462048
if (!layer) {
2047-
const jLayer = this._model.getLayer(id);
2048-
const p = jLayer?.parameters as ILandmarkLayer;
2049-
this._Map.getView().fit(p.extent!, {
2049+
const jgisLayer = this._model.getLayer(id);
2050+
const layerParams = jgisLayer?.parameters as ILandmarkLayer;
2051+
this._Map.getView().fit(layerParams.extent!, {
20502052
size: this._Map.getSize(),
20512053
duration: 500,
2052-
maxZoom: p.zoom!,
2054+
maxZoom: layerParams.zoom!,
20532055
});
20542056
return;
20552057
}

packages/base/src/panelview/components/layers.tsx

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ interface IBodyProps {
4545
model: IJupyterGISModel;
4646
commands: CommandRegistry;
4747
state: IStateDB;
48-
layerTree?: IJGISLayerTree;
48+
layerTree: IJGISLayerTree;
4949
}
5050

5151
export const LayersBodyComponent: React.FC<IBodyProps> = props => {
5252
const model = props.model;
5353

5454
const [layerTree, setLayerTree] = useState<IJGISLayerTree>(
55-
props.layerTree || model?.getLayerTree() || [],
55+
props.layerTree || [],
5656
);
5757

5858
const notifyCommands = () => {
@@ -155,7 +155,7 @@ export const LayersBodyComponent: React.FC<IBodyProps> = props => {
155155
} else {
156156
// Check if new selection is the same type as previous selections
157157
const isSelectedSameType = Object.values(selectedValue).some(
158-
selection => (selection as ISelection).type === type,
158+
selection => selection.type === type,
159159
);
160160

161161
if (!isSelectedSameType) {
@@ -186,29 +186,6 @@ export const LayersBodyComponent: React.FC<IBodyProps> = props => {
186186
onSelect({ type, item, event });
187187
};
188188

189-
/**
190-
* Listen to the layers and layer tree changes.
191-
*/
192-
useEffect(() => {
193-
const updateLayers = () => {
194-
setLayerTree(props.layerTree || model?.getLayerTree() || []);
195-
};
196-
197-
// Only listen to changes if layerTree is not provided as prop
198-
if (!props.layerTree) {
199-
model?.sharedModel.layersChanged.connect(updateLayers);
200-
model?.sharedModel.layerTreeChanged.connect(updateLayers);
201-
}
202-
203-
updateLayers();
204-
return () => {
205-
if (!props.layerTree) {
206-
model?.sharedModel.layersChanged.disconnect(updateLayers);
207-
model?.sharedModel.layerTreeChanged.disconnect(updateLayers);
208-
}
209-
};
210-
}, [model, props.layerTree]);
211-
212189
// Update layerTree when prop changes
213190
useEffect(() => {
214191
if (props.layerTree) {

packages/base/src/panelview/components/story-maps/StoryEditorPanel.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@ export function StoryEditorPanel({ model, togglePreview }: IStoryPanelProps) {
1919
}, [model, model.sharedModel.storiesMap]);
2020

2121
const syncStoryData = (properties: IDict) => {
22-
if (!landmarkId) {
23-
return;
24-
}
25-
2622
const { title, storyType, landmarks } = properties;
2723
const updatedStory: IJGISStoryMap = { title, storyType, landmarks };
2824

packages/base/src/panelview/components/story-maps/StoryViewerPanel.tsx

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interface IStoryViewerPanelProps {
1515
}
1616

1717
function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
18-
const [currentRankDisplayed, setCurrentRankDisplayed] = useState(0);
18+
const [currentIndexDisplayed, setCurrentIndexDisplayed] = useState(0);
1919
const [storyData, setStoryData] = useState<IJGISStoryMap | null>(null);
2020

2121
// Derive landmarks from story data
@@ -29,10 +29,10 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
2929
.filter((layer): layer is IJGISLayer => layer !== undefined);
3030
}, [storyData, model]);
3131

32-
// Derive current landmark from landmarks and currentRankDisplayed
32+
// Derive current landmark from landmarks and currentIndexDisplayed
3333
const currentLandmark = useMemo(() => {
34-
return landmarks[currentRankDisplayed];
35-
}, [landmarks, currentRankDisplayed]);
34+
return landmarks[currentIndexDisplayed];
35+
}, [landmarks, currentIndexDisplayed]);
3636

3737
// Derive active slide and layer name from current landmark
3838
const activeSlide = useMemo(() => {
@@ -45,15 +45,15 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
4545

4646
// Derive landmark ID for zooming
4747
const currentLandmarkId = useMemo(() => {
48-
return storyData?.landmarks?.[currentRankDisplayed];
49-
}, [storyData, currentRankDisplayed]);
48+
return storyData?.landmarks?.[currentIndexDisplayed];
49+
}, [storyData, currentIndexDisplayed]);
5050

5151
useEffect(() => {
5252
const updateStory = () => {
5353
const { story } = model.getSelectedStory();
5454
setStoryData(story ?? null);
5555
// Reset to first slide when story changes
56-
setCurrentRankDisplayed(0);
56+
setCurrentIndexDisplayed(0);
5757
};
5858

5959
updateStory();
@@ -73,11 +73,11 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
7373
}, [currentLandmarkId, model]);
7474

7575
// Listen for layer selection changes in unguided mode
76-
// ! TODO refactor selection stuff
7776
useEffect(() => {
78-
const handleAwarenessChange = (thig: any, more: any, extra: any) => {
77+
// ! TODO this logic (getting a single selected layer) is also in the processing index.ts, move to tools
78+
const handleSelectedLandmarkChange = (thig: any, more: any, extra: any) => {
7979
// This is just to update the displayed content
80-
// So bail early if we don't need to do thath
80+
// So bail early if we don't need to do that
8181
if (!storyData || storyData.storyType !== 'unguided') {
8282
return;
8383
}
@@ -105,13 +105,13 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
105105
return;
106106
}
107107

108-
setCurrentRankDisplayed(index);
108+
setCurrentIndexDisplayed(index);
109109
};
110110

111-
model.sharedModel.awareness.on('change', handleAwarenessChange);
111+
model.sharedModel.awareness.on('change', handleSelectedLandmarkChange);
112112

113113
return () => {
114-
model.sharedModel.awareness.off('change', handleAwarenessChange);
114+
model.sharedModel.awareness.off('change', handleSelectedLandmarkChange);
115115
};
116116
}, [model, storyData]);
117117

@@ -122,14 +122,14 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
122122
};
123123

124124
const handlePrev = () => {
125-
if (currentRankDisplayed > 0) {
126-
setCurrentRankDisplayed(currentRankDisplayed - 1);
125+
if (currentIndexDisplayed > 0) {
126+
setCurrentIndexDisplayed(currentIndexDisplayed - 1);
127127
}
128128
};
129129

130130
const handleNext = () => {
131-
if (currentRankDisplayed < landmarks.length - 1) {
132-
setCurrentRankDisplayed(currentRankDisplayed + 1);
131+
if (currentIndexDisplayed < landmarks.length - 1) {
132+
setCurrentIndexDisplayed(currentIndexDisplayed + 1);
133133
}
134134
};
135135

@@ -175,7 +175,7 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
175175
textAlign: 'center',
176176
}}
177177
>
178-
{`Slide ${currentRankDisplayed + 1} - ${layerName ? layerName : 'Landmark Name'}`}
178+
{`Slide ${currentIndexDisplayed + 1} - ${layerName ? layerName : 'Landmark Name'}`}
179179
</h1>
180180
</div>
181181
) : (
@@ -186,11 +186,6 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
186186
? activeSlide.content.title
187187
: 'Slide Title'}
188188
</h2>
189-
{/* <h3 style={{ paddingLeft: 2 }}>
190-
{activeSlide?.content?.title
191-
? activeSlide.content.title
192-
: 'Slide Title'}
193-
</h3> */}
194189
{activeSlide?.content?.markdown && (
195190
<div className="jgis-story-viewer-content" style={{ paddingLeft: 16 }}>
196191
<Markdown>{activeSlide.content.markdown}</Markdown>
@@ -201,8 +196,8 @@ function StoryViewerPanel({ model, togglePreview }: IStoryViewerPanelProps) {
201196
<StoryNavBar
202197
onPrev={handlePrev}
203198
onNext={handleNext}
204-
hasPrev={currentRankDisplayed > 0}
205-
hasNext={currentRankDisplayed < landmarks.length - 1}
199+
hasPrev={currentIndexDisplayed > 0}
200+
hasNext={currentIndexDisplayed < landmarks.length - 1}
206201
/>
207202
)}
208203
<Button onClick={togglePreview}>Edit Story</Button>

packages/base/src/panelview/leftpanel.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ export const LeftPanel: React.FC<ILeftPanelProps> = (
5959
};
6060
}, [props.model]);
6161

62-
// Process layer tree once to create both filtered and landmark trees
62+
// Since landmarks are technically layers they are stored in the layer tree, so we separate them
63+
// from regular layers. Process the tree once to build both filtered and landmark trees.
6364
const { filteredLayerTree, landmarkLayerTree } = React.useMemo(() => {
6465
const filtered: IJGISLayerTree = [];
6566
const landmarks: IJGISLayerTree = [];
@@ -121,11 +122,6 @@ export const LeftPanel: React.FC<ILeftPanelProps> = (
121122
};
122123
}, [layerTree]);
123124

124-
/**
125-
* ! TODO LOOK HERE
126-
* If we want to support multiple stories then we need a way to assign landmarks to them
127-
* Probably just wont do multiple stories then
128-
*/
129125
// Updates landmarks array based on layer tree array
130126
React.useEffect(() => {
131127
const { landmarkId, story } = props.model.getSelectedStory();

packages/base/style/shared/tabs.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
.jgis-panel-tabs {
22
display: flex;
33
flex-direction: column;
4-
/* gap: 1rem; */
54
justify-content: center;
65
align-items: center;
76
background-color: var(--jp-layout-color0);

packages/schema/src/doc.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,6 @@ export class JupyterGISDoc
300300
this.transact(() => this._sources.set(id, value));
301301
}
302302

303-
storyMapExists(id: string): boolean {
304-
return Boolean(this._getStoryMapAsYMap(id));
305-
}
306-
307303
removeStoryMap(id: string): void {
308304
this.transact(() => {
309305
this._storiesMap.delete(id);
@@ -389,13 +385,6 @@ export class JupyterGISDoc
389385
return undefined;
390386
}
391387

392-
private _getStoryMapAsYMap(id: string): Y.Map<any> | undefined {
393-
if (this._storiesMap.has(id)) {
394-
return this._storiesMap.get(id);
395-
}
396-
return undefined;
397-
}
398-
399388
private _layersObserver(events: Y.YEvent<any>[]): void {
400389
const changes: Array<{
401390
id: string;

packages/schema/src/interfaces.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ export interface IJupyterGISDoc extends YDocument<IJupyterGISDocChange> {
132132
addSource(id: string, value: IJGISSource): void;
133133
updateSource(id: string, value: IJGISSource): void;
134134

135-
storyMapExists(id: string): boolean;
136135
getStoryMap(id: string): IJGISStoryMap | undefined;
137136
removeStoryMap(id: string): void;
138137
addStoryMap(id: string, value: IJGISStoryMap): void;

0 commit comments

Comments
 (0)