Skip to content

Commit 2f8837a

Browse files
committed
1. Merge query handler always returns cancel
2. Fixed return type
1 parent e20d58d commit 2f8837a

2 files changed

Lines changed: 31 additions & 17 deletions

File tree

demo/demo_merge_edit_frame.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
*/
2626

2727
import type {
28+
CancellableEventResponse,
2829
DashboardTileMergeEvent,
2930
ILookerConnection,
3031
ILookerEmbedSDK,
@@ -75,25 +76,31 @@ const initializeControls = () => {
7576
* The default behavior is for the edit merge query page to be opened in a top
7677
* level window.
7778
*/
78-
const openMergeQuery = (event: DashboardTileMergeEvent): any => {
79-
if (
80-
event.dashboard_modified &&
81-
!window.confirm(
79+
const openMergeQuery = (
80+
event: DashboardTileMergeEvent
81+
): CancellableEventResponse => {
82+
let doMergeEdit = false
83+
if (!event.dashboard_modified) {
84+
doMergeEdit = true
85+
} else {
86+
doMergeEdit = window.confirm(
8287
'The dashboard has unsaved changes which may be lost if the merge query is edited. Proceed?'
8388
)
84-
) {
85-
return
8689
}
87-
window.open(`/merge_edit?merge_url=${encodeURI(event.url)}`)
88-
updateStatus('Merge query edit opened in a new window')
90+
if (doMergeEdit) {
91+
window.open(`/merge_edit?merge_url=${encodeURIComponent(event.url)}`)
92+
updateStatus('Merge query edit opened in a new window')
93+
} else {
94+
updateStatus('Merge query edit cancelled')
95+
}
8996
return { cancel: true }
9097
}
9198

9299
/**
93100
* The merge edit url is stored in history state
94101
*/
95102
const getEmbedMergeEditUrl = () => {
96-
const embedUrl = decodeURI(history.state?.merge_url || '')
103+
const embedUrl = decodeURIComponent(history.state?.merge_url || '')
97104
return embedUrl || '/embed/preload'
98105
}
99106

demo/demo_single_frame.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
// IDs for content to demonstrate can be configured in the .env file or in demo_config.ts
2828

2929
import type {
30+
CancellableEventResponse,
3031
DashboardTileMergeEvent,
3132
ILookerConnection,
3233
ILookerEmbedSDK,
@@ -122,17 +123,23 @@ const updateStatus = (status: string) => {
122123
* The default behavior is for the edit merge query page to be opened in a top
123124
* level window.
124125
*/
125-
const openMergeQuery = (event: DashboardTileMergeEvent): any => {
126-
if (
127-
event.dashboard_modified &&
128-
!window.confirm(
126+
const openMergeQuery = (
127+
event: DashboardTileMergeEvent
128+
): CancellableEventResponse => {
129+
let doMergeEdit = false
130+
if (!event.dashboard_modified) {
131+
doMergeEdit = true
132+
} else {
133+
doMergeEdit = window.confirm(
129134
'The dashboard has unsaved changes which may be lost if the merge query is edited. Proceed?'
130135
)
131-
) {
132-
return
133136
}
134-
window.open(`/merge_edit?merge_url=${encodeURI(event.url)}`)
135-
updateStatus('Merge query edit opened in a new window')
137+
if (doMergeEdit) {
138+
window.open(`/merge_edit?merge_url=${encodeURIComponent(event.url)}`)
139+
updateStatus('Merge query edit opened in a new window')
140+
} else {
141+
updateStatus('Merge query edit cancelled')
142+
}
136143
return { cancel: true }
137144
}
138145

0 commit comments

Comments
 (0)