Skip to content

Commit 0a5bf41

Browse files
authored
DOP-5830: Update previews to use Bump (#824)
1 parent 2a15e2e commit 0a5bf41

File tree

1 file changed

+55
-6
lines changed

1 file changed

+55
-6
lines changed

.github/scripts/branded_preview.sh

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,70 @@ done
3232

3333
links=""
3434
for url in "${all_urls[@]}"; do
35+
URL_COUNT=$((URL_COUNT + 1))
3536
filename=$(basename "$url")
3637
echo "$url"
37-
link="https://www.mongodb.com/docs/openapi/preview/?src=$url"
38-
echo "Branded preview: ${link}"
39-
links="${links}<li><a href='$link' target=\"_blank\">${filename}</a></li>"
38+
links="${links}<div class='url-container'><button onclick=\"generateLink(this, 'preview-url-$URL_COUNT', '$url')\">Generate preview link for ${filename}</button><span class='preview-span' id='preview-url-$URL_COUNT'></span></div>"
4039
done
4140

41+
# Uses a proxied endpoint for creating preview links to prevent CORS issues
4242
cat << EOF > branded-preview.html
4343
<!DOCTYPE html>
4444
<html lang="en">
45+
<head>
46+
<style>
47+
.url-container {
48+
margin: 16px 0;
49+
}
50+
51+
.preview-span {
52+
margin-left: 8px;
53+
}
54+
</style>
55+
</head>
4556
<body>
4657
<h2>Preview docs for:</h2>
47-
<ul>
48-
${links}
49-
</ul>
58+
${links}
59+
<script>
60+
async function generateLink(buttonEl, elId, url) {
61+
const previewSpan = document.getElementById(elId);
62+
if (!previewSpan) {
63+
return;
64+
}
65+
66+
buttonEl.disabled = true;
67+
previewSpan.innerHTML = 'Loading...';
68+
69+
try {
70+
const buildPreviewEndpoint = 'https://populate-data-extension.netlify.app/.netlify/functions/create-bump-preview';
71+
const res = await fetch(buildPreviewEndpoint, {
72+
method: 'POST',
73+
headers: {
74+
'Content-Type': 'application/json',
75+
},
76+
body: JSON.stringify({ url }),
77+
});
78+
79+
if (res.status === 201) {
80+
const { public_url: previewUrl } = await res.json();
81+
previewSpan.innerHTML = '';
82+
const link = document.createElement('a');
83+
link.href = previewUrl;
84+
link.textContent = previewUrl;
85+
link.target = '_blank';
86+
previewSpan.appendChild(link);
87+
}
88+
89+
if (res.status === 422) {
90+
const resText = await res.text();
91+
previewSpan.innerHTML = resText;
92+
}
93+
} catch (err) {
94+
console.error(err);
95+
previewSpan.innerHTML = 'Error!';
96+
}
97+
}
98+
</script>
5099
</body>
51100
</html>
52101
EOF

0 commit comments

Comments
 (0)