Skip to content

Commit 82ebb59

Browse files
authored
feat: attach Feedback SDK widget (#364)
* chore: add feedback widget to docs-page layout * feat: add feedback btn to toolbar * fix: emit custom "theme" event for feedback
1 parent 87e521a commit 82ebb59

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

src/components/docs-page.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ const DocsPage = ({ pageContext: page, children, location }) => {
4141

4242
<Helmet>
4343
<html is-docs-page="" {...disableSearchProps}/>
44+
<script data-source="docs" async defer src="https://feedback.developers.cloudflare.com/sdk.js"></script>
45+
<link rel="preload" href="https://feedback.developers.cloudflare.com/sdk.css" as="style" onload="this.onload=null;this.rel='stylesheet'"/>
46+
<noscript>{'<link rel="stylesheet" href="https://feedback.developers.cloudflare.com/sdk.css"/>'}</noscript>
4447
</Helmet>
4548

4649
<HandleMobilePageNavigations/>

src/components/docs-toolbar.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@ const DocsToolbar = () => {
1717
</div>
1818

1919
<div className="DocsToolbar--tools">
20+
<button data-feedback className="DocsToolbar--feedback Button Button-is-docs-secondary">
21+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 17">
22+
<path d="M14 2.5H2l-.5.5v11.165l.863.345 2.852-3.01H14l.5-.5V3l-.5-.5Zm-.5 8H4.785L2.5 12.911V3.5h11v7Z" fill="currentColor"></path>
23+
<path d="M12.5 5.003h-9v1h9v-1ZM12.5 7.5h-9v1h9v-1Z" fill="currentColor"></path>
24+
</svg>
25+
Give Feedback
26+
</button>
27+
28+
<div className="DocsToolbar--tools-spacer"/>
29+
2030
<div className="DocsToolbar--tools-icon-item">
2131
<div className="Tooltip---root">
2232
<div className="DocsToolbar--tools-icon-item-content">

src/components/theme-toggle.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,24 @@ const setTheme = theme => {
6868
}
6969

7070
const storeTheme = theme => {
71-
localStorage.theme = JSON.stringify({
72-
theme: theme,
73-
updated: +new Date()
74-
})
71+
try {
72+
document.dispatchEvent(
73+
new CustomEvent('theme', {
74+
detail: theme === 'dark'
75+
})
76+
)
77+
} catch (err) {
78+
// ignore
79+
}
80+
81+
try {
82+
localStorage.theme = JSON.stringify({
83+
theme: theme,
84+
updated: +new Date()
85+
})
86+
} catch (err) {
87+
// safari may throw SecurityError
88+
}
7589
}
7690

7791
class ThemeToggle extends React.Component {

src/css/docs/components/docs-toolbar.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,18 @@
1818
visibility: hidden;
1919
}
2020

21+
.DocsToolbar--feedback {
22+
display: flex;
23+
align-items: center;
24+
padding: 0.5rem 1rem;
25+
}
26+
27+
.DocsToolbar--feedback svg {
28+
width: 1em;
29+
margin-right: 0.5em;
30+
height: 1em;
31+
}
32+
2133
.DocsToolbar--tools {
2234
display: flex;
2335
align-items: center;
@@ -70,6 +82,7 @@
7082
max-width: 100vw;
7183
}
7284

85+
.DocsToolbar--feedback,
7386
.DocsToolbar--tools-spacer,
7487
.DocsToolbar--tools-icon-item {
7588
display: none;

0 commit comments

Comments
 (0)