Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenthoms committed Jun 21, 2024
1 parent f2ab27f commit 652739b
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ type InfoItem = {

function formatValue(value: number | string): string {
if (typeof value === "number") {
return value.toFixed(2);
return (+value.toFixed(2)).toString();
}
return value.toString();
}
Expand Down
17 changes: 15 additions & 2 deletions frontend/src/modules/Intersection/utils/layers/BaseLayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,23 @@ export class BaseLayer<TSettings extends LayerSettings, TData> {
return;
}

if (this._queryKeys) {
if (this._queryKeys.length > 0) {
for (const queryKey of this._queryKeys) {
this._queryClient.cancelQueries({ queryKey });
this._queryClient
.cancelQueries(
{ queryKey, exact: true, fetchStatus: "fetching", type: "active" },
{
silent: true,
revert: true,
}
)
.then(() => {
this._queryClient?.resetQueries({ queryKey });
});
}
this._queryKeys = [];
this._status = LayerStatus.IDLE;
this.notifySubscribers(LayerTopic.STATUS);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,13 @@ export class LayerManager {
}
layer.setName(this.makeUniqueLayerName(layer.getName()));
layer.setQueryClient(this._queryClient);
this._layers = [...this._layers, layer];
this._layers = [layer, ...this._layers];
this.notifySubscribers(LayerManagerTopic.LAYERS_CHANGED);
}

removeLayer(id: string): void {
this._layers = this._layers.filter((layer) => layer.getId() !== id);
this.notifySubscribers(LayerManagerTopic.LAYERS_CHANGED);
}

getLayer(id: string): BaseLayer<any, any> | undefined {
Expand Down
37 changes: 0 additions & 37 deletions frontend/src/modules/Intersection/view/atoms/atomDefinitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ const STALE_TIME = 60 * 1000;
const CACHE_TIME = 60 * 1000;

export type ViewAtoms = {
layerManagerAtom: LayerManager;
intersectionReferenceSystemAtom: IntersectionReferenceSystem | null;
polylineAtom: {
polylineUtmXy: number[];
Expand Down Expand Up @@ -125,41 +124,6 @@ export function viewAtomsInitialization(
};
});

const adjustedLayerManagerAtom = atom((get) => {
const layerManager = get(settingsToViewInterface.getAtom("layerManager"));
const ensembleIdent = get(settingsToViewInterface.getAtom("ensembleIdent"));
const wellbore = get(settingsToViewInterface.getAtom("wellboreHeader"));
const polyline = get(polylineAtom);
const extensionLength = get(settingsToViewInterface.getAtom("intersectionExtensionLength"));
const intersectionType = get(settingsToViewInterface.getAtom("intersectionType"));

const layers = layerManager.getLayers();

for (const layer of layers) {
if (isGridLayer(layer)) {
layer.maybeUpdateSettings({ polyline, extensionLength });
}
if (isSeismicLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isSurfaceLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isSurfacesUncertaintyLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isWellpicksLayer(layer)) {
layer.maybeUpdateSettings({
ensembleIdent,
wellboreUuid: intersectionType === IntersectionType.WELLBORE ? wellbore?.uuid : null,
});
}
layer.maybeRefetchData();
}

return layerManager;
});

const wellboreTrajectoryQueryAtom = atomWithQuery((get) => {
const wellbore = get(settingsToViewInterface.getAtom("wellboreHeader"));

Expand All @@ -174,7 +138,6 @@ export function viewAtomsInitialization(
});

return {
layerManagerAtom: adjustedLayerManagerAtom,
intersectionReferenceSystemAtom,
polylineAtom,
wellboreTrajectoryQueryAtom,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ export function LayersWrapper(props: LayersWrapperProps): React.ReactNode {

for (let i = layers.length - 1; i >= 0; i--) {
const layer = layers[i];
const order = i;
const order = layers.length - i;

if (!layer.getIsVisible() || layer.getStatus() !== LayerStatus.SUCCESS) {
continue;
Expand Down
64 changes: 61 additions & 3 deletions frontend/src/modules/Intersection/view/view.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,13 @@ import { useWellboreCasingsQuery } from "./queries/wellboreSchematicsQueries";

import { SettingsToViewInterface } from "../settingsToViewInterface";
import { State } from "../state";
import { LayerStatus, useLayersStatuses } from "../utils/layers/BaseLayer";
import { LayerStatus, useLayers, useLayersStatuses } from "../utils/layers/BaseLayer";

Check failure on line 16 in frontend/src/modules/Intersection/view/view.tsx

View workflow job for this annotation

GitHub Actions / frontend

'useLayers' is defined but never used
import { isGridLayer } from "../utils/layers/GridLayer";
import { LayerManagerTopic, useLayerManagerTopicValue } from "../utils/layers/LayerManager";
import { isSeismicLayer } from "../utils/layers/SeismicLayer";
import { isSurfaceLayer } from "../utils/layers/SurfaceLayer";
import { isSurfacesUncertaintyLayer } from "../utils/layers/SurfacesUncertaintyLayer";
import { isWellpicksLayer } from "../utils/layers/WellpicksLayer";

export function View(
props: ModuleViewProps<State, SettingsToViewInterface, Record<string, never>, ViewAtoms>
Expand All @@ -25,15 +31,67 @@ export function View(
const intersectionReferenceSystem = props.viewContext.useViewAtomValue("intersectionReferenceSystemAtom");
const wellboreHeader = props.viewContext.useSettingsToViewInterfaceValue("wellboreHeader");
const wellboreTrajectoryQuery = props.viewContext.useViewAtomValue("wellboreTrajectoryQueryAtom");
const polyline = props.viewContext.useViewAtomValue("polylineAtom");
const extensionLength = props.viewContext.useSettingsToViewInterfaceValue("intersectionExtensionLength");
const wellbore = props.viewContext.useSettingsToViewInterfaceValue("wellboreHeader");

const layerManager = props.viewContext.useViewAtomValue("layerManagerAtom");
const layers = layerManager.getLayers();
const layerManager = props.viewContext.useSettingsToViewInterfaceValue("layerManager");
const layers = useLayerManagerTopicValue(layerManager, LayerManagerTopic.LAYERS_CHANGED);
const layersStatuses = useLayersStatuses(layers);

const intersectionExtensionLength =
props.viewContext.useSettingsToViewInterfaceValue("intersectionExtensionLength");
const intersectionType = props.viewContext.useSettingsToViewInterfaceValue("intersectionType");

React.useEffect(
function handleLayerChange() {
for (const layer of layers) {
if (isGridLayer(layer)) {
layer.maybeUpdateSettings({ polyline, extensionLength });
}
if (isSeismicLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isSurfaceLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isSurfacesUncertaintyLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isWellpicksLayer(layer)) {
layer.maybeUpdateSettings({
ensembleIdent,
wellboreUuid: intersectionType === IntersectionType.WELLBORE ? wellbore?.uuid : null,
});
}
layer.maybeRefetchData();
}
},
[polyline, extensionLength, layers, wellbore, ensembleIdent, intersectionType]
);

for (const layer of layers) {
if (isGridLayer(layer)) {
layer.maybeUpdateSettings({ polyline, extensionLength });
}
if (isSeismicLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isSurfaceLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isSurfacesUncertaintyLayer(layer)) {
layer.maybeUpdateSettings({ polylineUtmXy: polyline.polylineUtmXy, extensionLength });
}
if (isWellpicksLayer(layer)) {
layer.maybeUpdateSettings({
ensembleIdent,
wellboreUuid: intersectionType === IntersectionType.WELLBORE ? wellbore?.uuid : null,
});
}
layer.maybeRefetchData();
}

React.useEffect(
function handleTitleChange() {
let ensembleName = "";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ function MinMaxDivMidPointSetter(props: MinMaxDivMidPointSetterProps): React.Rea
<>
{isDragging &&
createPortal(<div className="absolute z-40 transparent w-full h-full inset-0 cursor-ew-resize"></div>)}
<div className="relative w-full h-5 border-l border-r border-gray-500" ref={containerDivRef}>
<div className="relative w-full h-3 border-l border-r border-gray-500" ref={containerDivRef}>
<div
title="Drag to adjust mid point"
className={resolveClassNames(
Expand Down

0 comments on commit 652739b

Please sign in to comment.