feat(v2): embed Canny feedback widget (#1280)

* feat(v2): embed Canny feedback widget

* docs(v2): Mention source of Canny widget

* misc(v2): add newline
This commit is contained in:
Yangshun Tay 2019-03-13 22:51:16 -07:00 committed by GitHub
parent 398d7c7ae4
commit d78220a818
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 71 additions and 3 deletions

View file

@ -0,0 +1,28 @@
/**
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import React, {useEffect} from 'react';
import canny from '../../scripts/canny';
import styles from './styles.module.css';
const BOARD_TOKEN = '054e0e53-d951-b14c-7e74-9eb8f9ed2f91';
function Feedback() {
useEffect(() => {
canny();
window.Canny &&
window.Canny('render', {
boardToken: BOARD_TOKEN,
basePath: '/feedback',
});
}, []);
return <div className={styles.feedbackPage} data-canny />;
}
export default Feedback;

View file

@ -0,0 +1,4 @@
.feedbackPage {
margin: 64px auto;
max-width: 1024px;
}

View file

@ -0,0 +1,37 @@
/**
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
// Provided by Canny.
function canny() {
!(function(w, d, i, s) {
function l() {
if (!d.getElementById(i)) {
var f = d.getElementsByTagName(s)[0],
e = d.createElement(s);
(e.type = 'text/javascript'),
(e.async = !0),
(e.src = 'https://canny.io/sdk.js'),
f.parentNode.insertBefore(e, f);
}
}
if ('function' != typeof w.Canny) {
var c = function() {
c.q.push(arguments);
};
(c.q = []),
(w.Canny = c),
'complete' === d.readyState
? l()
: w.attachEvent
? w.attachEvent('onload', l)
: w.addEventListener('load', l, !1);
}
})(window, document, 'canny-jssdk', 'script');
}
export default canny;

View file

@ -92,7 +92,7 @@ module.exports = function createBaseConfig(props, isServer) {
const jsRule = config.module
.rule('js')
.test(/\.js$/)
.test(/\.jsx?$/)
.exclude.add(filepath => {
// Always transpile lib directory
if (filepath.startsWith(path.join(__dirname, '..'))) {

View file

@ -104,8 +104,7 @@ class DocusaurusPluginContentPages {
}
getPathsToWatch() {
// Not needed, all pages are loaded as modules and watched by webpack.
return [];
return [this.contentPath];
}
}