diff --git a/explorer/Explorer.tsx b/explorer/Explorer.tsx index e3bdeda19f..427aa5d3ed 100644 --- a/explorer/Explorer.tsx +++ b/explorer/Explorer.tsx @@ -561,6 +561,7 @@ export class Explorer ...this.explorerProgram.grapherConfigOnlyGrapherProps, bakedGrapherURL: BAKED_GRAPHER_URL, dataApiUrl: DATA_API_URL, + adminBaseUrl: ADMIN_BASE_URL, hideEntityControls: this.showExplorerControls, manuallyProvideData: false, } @@ -606,6 +607,7 @@ export class Explorer ...this.explorerProgram.grapherConfigOnlyGrapherProps, bakedGrapherURL: BAKED_GRAPHER_URL, dataApiUrl: DATA_API_URL, + adminBaseUrl: ADMIN_BASE_URL, hideEntityControls: this.showExplorerControls, manuallyProvideData: false, } @@ -757,6 +759,7 @@ export class Explorer ...this.explorerProgram.grapherConfigOnlyGrapherProps, bakedGrapherURL: BAKED_GRAPHER_URL, dataApiUrl: DATA_API_URL, + adminBaseUrl: ADMIN_BASE_URL, hideEntityControls: this.showExplorerControls, manuallyProvideData: true, } diff --git a/packages/@ourworldindata/grapher/src/core/Grapher.tsx b/packages/@ourworldindata/grapher/src/core/Grapher.tsx index f285401a03..3d0564fa28 100644 --- a/packages/@ourworldindata/grapher/src/core/Grapher.tsx +++ b/packages/@ourworldindata/grapher/src/core/Grapher.tsx @@ -882,18 +882,10 @@ export class Grapher } @computed get editUrl(): string | undefined { - const yColumnSlugs = this.yColumnSlugs if (this.showAdminControls) { - // This is a workaround to make the edit button work for MDims. We - // probably want to do this in a more general way. - if (window._OWID_MULTI_DIM_PROPS) { - const varId = yColumnSlugs[0] - - return `${this.adminBaseUrl ?? ""}/admin/variables/${varId}/config` - } else - return `${this.adminBaseUrl}/admin/${ - this.manager?.editUrl ?? `charts/${this.id}/edit` - }` + return `${this.adminBaseUrl}/admin/${ + this.manager?.editUrl ?? `charts/${this.id}/edit` + }` } return undefined } diff --git a/site/multiDim/MultiDimDataPageContent.tsx b/site/multiDim/MultiDimDataPageContent.tsx index bd358531ec..5de7edbffd 100644 --- a/site/multiDim/MultiDimDataPageContent.tsx +++ b/site/multiDim/MultiDimDataPageContent.tsx @@ -140,7 +140,6 @@ const useVarDatapageData = ( null ) const [grapherConfigIsReady, setGrapherConfigIsReady] = useState(false) - const [variableId, setVariableId] = useState(null) useEffect(() => { setGrapherConfigIsReady(false) @@ -151,7 +150,6 @@ const useVarDatapageData = ( ? yIndicatorOrIndicators[0] : yIndicatorOrIndicators if (!variableId) return - setVariableId(variableId) const datapageDataPromise = cachedGetVariableMetadata(variableId).then( (json) => @@ -194,7 +192,6 @@ const useVarDatapageData = ( varDatapageData, varGrapherConfig: grapherConfig, grapherConfigIsReady, - variableId, } } @@ -231,12 +228,8 @@ export const MultiDimDataPageContent = ({ }) const currentView = useView(currentSettings, config) - const { - varDatapageData, - varGrapherConfig, - grapherConfigIsReady, - variableId, - } = useVarDatapageData(config, currentView) + const { varDatapageData, varGrapherConfig, grapherConfigIsReady } = + useVarDatapageData(config, currentView) // This is the ACTUAL grapher instance being used, because GrapherFigureView/GrapherWithFallback are doing weird things and are not actually using the grapher instance we pass into it // and therefore we can not access the grapher state (e.g. tab, selection) from the grapher instance we pass into it @@ -285,7 +278,11 @@ export const MultiDimDataPageContent = ({ } if (!grapherConfigIsReady) return baseConfig - const editUrl = variableId ? `variables/${variableId}/config` : "" + const variables = currentView?.indicators?.["y"] + const editUrl = + variables?.length === 1 + ? `variables/${variables[0]}/config` + : undefined return { ...varGrapherConfig, ...baseConfig, @@ -300,7 +297,7 @@ export const MultiDimDataPageContent = ({ grapherConfigIsReady, bounds, canonicalUrl, - variableId, + currentView?.indicators, ]) const hasTopicTags = !!config.config.topicTags?.length