Skip to content

Commit

Permalink
🔨 fix the mdim edit hack (#4104)
Browse files Browse the repository at this point in the history
Fixes the hack to make the internal edit link in the share menu of grapher work for Mdims (#3987)
  • Loading branch information
danyx23 authored Nov 14, 2024
1 parent d1926da commit c8058b1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
14 changes: 3 additions & 11 deletions packages/@ourworldindata/grapher/src/core/Grapher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -900,18 +900,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 as any)._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
}
Expand Down
19 changes: 15 additions & 4 deletions site/multiDim/MultiDimDataPageContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import {
} from "@ourworldindata/utils"
import cx from "classnames"
import { DebugProvider } from "../gdocs/DebugContext.js"
import { DATA_API_URL } from "../../settings/clientSettings.js"
import { ADMIN_BASE_URL, DATA_API_URL } from "../../settings/clientSettings.js"
import {
FaqEntryKeyedByGdocIdAndFragmentId,
MultiDimDataPageConfigEnriched,
Expand Down Expand Up @@ -290,17 +290,27 @@ export const MultiDimDataPageContent = ({
}

if (!grapherConfigIsReady) return baseConfig
const variables = currentView?.indicators?.["y"]
const editUrl =
variables?.length === 1
? `variables/${variables[0]}/config`
: undefined
return {
...varGrapherConfig,
...baseConfig,
dataApiUrl: DATA_API_URL,
// TODO: The way manager is set here is just a workaround to make the edit button in the
// share menu work. This should be removed before we publish MDims!
manager: {
canonicalUrl,
editUrl,
},
} as GrapherProgrammaticInterface
}, [varGrapherConfig, grapherConfigIsReady, bounds, canonicalUrl])
}, [
varGrapherConfig,
grapherConfigIsReady,
bounds,
canonicalUrl,
currentView?.indicators,
])

const hasTopicTags = !!config.config.topicTags?.length

Expand Down Expand Up @@ -384,6 +394,7 @@ export const MultiDimDataPageContent = ({
{...grapherConfigComputed}
queryStr={queryStr}
getGrapherInstance={setGrapherInst}
adminBaseUrl={ADMIN_BASE_URL}
/>
</figure>
</div>
Expand Down

0 comments on commit c8058b1

Please sign in to comment.