-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcomponent---src-templates-blog-post-tsx-4cd075fddade7c193d8f.js.map
1 lines (1 loc) · 44.3 KB
/
component---src-templates-blog-post-tsx-4cd075fddade7c193d8f.js.map
1
{"version":3,"sources":["webpack:///./node_modules/react-gist/es/index.js","webpack:///./src/components/BlogMDXComponents.tsx","webpack:///./node_modules/react-share/es/utils/assert.js","webpack:///./node_modules/react-share/es/utils/objectToGetParams.js","webpack:///./node_modules/react-share/es/ShareButton.js","webpack:///./node_modules/react-share/es/hocs/createShareButton.js","webpack:///./node_modules/react-share/es/FacebookShareButton.js","webpack:///./node_modules/react-share/es/TwitterShareButton.js","webpack:///./node_modules/react-share/es/LinkedinShareButton.js","webpack:///./src/components/ShareButtons.tsx","webpack:///./src/templates/blog-post.tsx"],"names":["_setPrototypeOf","o","p","Object","setPrototypeOf","__proto__","_React$PureComponent","subClass","superClass","Gist","apply","this","arguments","prototype","create","constructor","_proto","componentDidMount","_updateIframeContent","componentDidUpdate","_prevProps","_prevState","_defineUrl","_this$props","props","id","file","_this$props2","iframe","iframeNode","doc","document","contentDocument","contentWindow","iframeHtml","open","writeln","close","render","_this","_this$props3","createElement","ref","n","width","frameBorder","PureComponent","getHostname","url","URL","hostname","error","BlogMDXComponents","_ref","children","site","useStaticQuery","React","MDXProvider","components","Alert","assign","transition","baseClass","timeout","LiveCode","h1","Fragment","className","style","lineHeight","borderBottom","h2","paddingBottom","fontSize","table","overflowX","Table","th","li","a","href","siteMetadata","siteUrl","Link","to","rel","target","img","extendStatics","__extends","d","b","Array","hasOwnProperty","call","TypeError","String","__","AssertionError","_super","message","name","Error","assert","value","objectToGetParams","object","params","entries","filter","_a","map","key","concat","encodeURIComponent","length","join","__assign","t","s","i","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","isPromise","obj","getBoxPositionOnWindowCenter","height","left","window","outerWidth","screenX","screenLeft","top","outerHeight","screenY","screenTop","getBoxPositionOnScreenCenter","screen","windowOpen","onClose","configRest","config","location","toolbar","status","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","keys","interval_1","setInterval","closed","clearInterval","console","ShareButton","openShareDialog","link","onShareWindowClose","_b","windowHeight","_c","windowPosition","_d","windowWidth","handleClick","event","beforeOnClick","disabled","networkLink","onClick","openShareDialogOnClick","opts","returnVal","preventDefault","disabledStyle","forwardedRef","networkName","resetButtonStyle","rest","newClassName","newStyle","backgroundColor","border","padding","font","color","cursor","defaultProps","opacity","optsMap","CreatedButton","passedProps","forEach","displayName","quote","hashtag","u","title","via","hashtags","related","isArray","text","undefined","summary","source","mini","borderRadius","ShareButtons","tags","FacebookShareButton","TwitterShareButton","LinkedinShareButton","BlogPost","data","useEffect","isBrowserIE","documentElement","scrollTop","scrollingElement","classList","add","remove","mdx","post","description","pages","social","fields","slug","Layout","SEO","frontmatter","excerpt","canonicalUrl","meta","property","content","thumbnail","childImageSharp","fluid","src","paddingTop","data-parallax","backgroundImage","base64","Container","Row","Col","md","Img","authorImg","author","date","lg","MDXRenderer","scope"],"mappings":"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","file":"component---src-templates-blog-post-tsx-4cd075fddade7c193d8f.js","sourcesContent":["function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nimport React from \"react\";\nvar Gist = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(Gist, _React$PureComponent);\n function Gist() {\n return _React$PureComponent.apply(this, arguments) || this;\n }\n var _proto = Gist.prototype;\n _proto.componentDidMount = function componentDidMount() {\n this._updateIframeContent();\n };\n _proto.componentDidUpdate = function componentDidUpdate(_prevProps, _prevState) {\n this._updateIframeContent();\n };\n _proto._defineUrl = function _defineUrl() {\n var _this$props = this.props,\n id = _this$props.id,\n file = _this$props.file;\n var fileArg = file ? \"?file=\" + file : \"\";\n return \"https://gist.github.com/\" + id + \".js\" + fileArg;\n };\n _proto._updateIframeContent = function _updateIframeContent() {\n var _this$props2 = this.props,\n id = _this$props2.id,\n file = _this$props2.file;\n var iframe = this.iframeNode;\n var doc = iframe.document;\n if (iframe.contentDocument) doc = iframe.contentDocument;else if (iframe.contentWindow) doc = iframe.contentWindow.document;\n var gistLink = this._defineUrl();\n var gistScript = \"<script type=\\\"text/javascript\\\" src=\\\"\" + gistLink + \"\\\"></script>\";\n var styles = \"<style>*{font-size:12px;}</style>\";\n var elementId = file ? \"gist-\" + id + \"-\" + file : \"gist-\" + id;\n var resizeScript = \"onload=\\\"parent.document.getElementById('\" + elementId + \"').style.height=document.body.scrollHeight + 'px'\\\"\";\n var iframeHtml = \"<html><head><base target=\\\"_parent\\\">\" + styles + \"</head><body \" + resizeScript + \">\" + gistScript + \"</body></html>\";\n doc.open();\n doc.writeln(iframeHtml);\n doc.close();\n };\n _proto.render = function render() {\n var _this = this;\n var _this$props3 = this.props,\n id = _this$props3.id,\n file = _this$props3.file;\n return /*#__PURE__*/React.createElement(\"iframe\", {\n ref: function ref(n) {\n _this.iframeNode = n;\n },\n width: \"100%\",\n frameBorder: 0,\n id: file ? \"gist-\" + id + \"-\" + file : \"gist-\" + id\n });\n };\n return Gist;\n}(React.PureComponent);\nexport default Gist;","import { MDXProvider } from \"@mdx-js/react\";\r\nimport React from 'react';\r\nimport { graphql, Link, useStaticQuery } from \"gatsby\";\r\nimport {\r\n Table,\r\n Alert,\r\n} from 'reactstrap';\r\nimport { LiveCode } from './LiveCode';\r\nimport Gist from 'react-gist';\r\n\r\nconst getHostname = (url: string) => {\r\n try {\r\n return new URL(url).hostname\r\n } catch (error) {\r\n return false;\r\n }\r\n};\r\n\r\nexport default function BlogMDXComponents({ children }) {\r\n\r\n const { site } = useStaticQuery(\r\n graphql`\r\n query {\r\n site {\r\n siteMetadata {\r\n siteUrl\r\n }\r\n }\r\n }\r\n `\r\n );\r\n\r\n return (\r\n <MDXProvider\r\n components={{\r\n Alert: props => <Alert {...props} transition={{ baseClass: '', timeout: 0 }} >{props.children}</Alert>,\r\n LiveCode,\r\n Gist,\r\n h1: props => (<>\r\n <h1 {...props}\r\n className=\"font-weight-bold pt-4 pb-3 mb-2\"\r\n style={{ lineHeight: '3rem', borderBottom: '1px solid rgba(255, 255, 255, 0.1)' }}>\r\n {props.children}\r\n </h1>\r\n </>),\r\n h2: props => (<>\r\n <h2 {...props}\r\n className=\"font-weight-bold pt-4 pb-2 mb-2\"\r\n style={{ borderBottom: '1px solid rgba(255, 255, 255, 0.1)' }}>\r\n {props.children}\r\n </h2>\r\n </>\r\n ),\r\n p: props => (\r\n <p\r\n {...props}\r\n style={{ paddingBottom: '1em', lineHeight: '2rem', fontSize: '1.1rem' }}\r\n >\r\n {props.children}\r\n </p>\r\n ),\r\n table: props => <div style={{ overflowX: 'auto' }}><Table {...props}>{props.children}</Table></div>,\r\n th: props => <th {...props} className=\"font-weight-bold\">{props.children}</th>,\r\n li: props => <li {...props} style={{ fontSize: '1.1rem', lineHeight: '2rem' }}>{props.children}</li>,\r\n a: props => {\r\n if (getHostname(props.href) === getHostname(site.siteMetadata.siteUrl)) {\r\n return <Link {...props} to={props.href} className={props.className}> {props.children} </Link>\r\n } else {\r\n return <a {...props} href={props.href} className={props.className} rel=\"noreferrer\"\r\n target=\"_blank\"> {props.children} </a>\r\n }\r\n },\r\n img: props => <div className='d-flex justify-content-center'><img className='img-raised' {...props}>{props.children}</img> </div>\r\n }}\r\n >\r\n {children}\r\n </MDXProvider >\r\n )\r\n}\r\n","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar AssertionError = /** @class */function (_super) {\n __extends(AssertionError, _super);\n function AssertionError(message) {\n var _this = _super.call(this, message) || this;\n _this.name = 'AssertionError';\n return _this;\n }\n return AssertionError;\n}(Error);\nexport default function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}","export default function objectToGetParams(object) {\n var params = Object.entries(object).filter(function (_a) {\n var value = _a[1];\n return value !== undefined && value !== null;\n }).map(function (_a) {\n var key = _a[0],\n value = _a[1];\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(String(value)));\n });\n return params.length > 0 ? \"?\".concat(params.join('&')) : '';\n}","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { Component } from 'react';\nimport cx from 'classnames';\nvar isPromise = function (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n};\nvar getBoxPositionOnWindowCenter = function (width, height) {\n return {\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2\n };\n};\nvar getBoxPositionOnScreenCenter = function (width, height) {\n return {\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2\n };\n};\nfunction windowOpen(url, _a, onClose) {\n var height = _a.height,\n width = _a.width,\n configRest = __rest(_a, [\"height\", \"width\"]);\n var config = __assign({\n height: height,\n width: width,\n location: 'no',\n toolbar: 'no',\n status: 'no',\n directories: 'no',\n menubar: 'no',\n scrollbars: 'yes',\n resizable: 'no',\n centerscreen: 'yes',\n chrome: 'yes'\n }, configRest);\n var shareDialog = window.open(url, '', Object.keys(config).map(function (key) {\n return \"\".concat(key, \"=\").concat(config[key]);\n }).join(', '));\n if (onClose) {\n var interval_1 = window.setInterval(function () {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval_1);\n onClose(shareDialog);\n }\n } catch (e) {\n /* eslint-disable no-console */\n console.error(e);\n /* eslint-enable no-console */\n }\n }, 1000);\n }\n return shareDialog;\n}\nvar ShareButton = /** @class */function (_super) {\n __extends(ShareButton, _super);\n function ShareButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.openShareDialog = function (link) {\n var _a = _this.props,\n onShareWindowClose = _a.onShareWindowClose,\n _b = _a.windowHeight,\n windowHeight = _b === void 0 ? 400 : _b,\n _c = _a.windowPosition,\n windowPosition = _c === void 0 ? 'windowCenter' : _c,\n _d = _a.windowWidth,\n windowWidth = _d === void 0 ? 550 : _d;\n var windowConfig = __assign({\n height: windowHeight,\n width: windowWidth\n }, windowPosition === 'windowCenter' ? getBoxPositionOnWindowCenter(windowWidth, windowHeight) : getBoxPositionOnScreenCenter(windowWidth, windowHeight));\n windowOpen(link, windowConfig, onShareWindowClose);\n };\n _this.handleClick = function (event) {\n return __awaiter(_this, void 0, void 0, function () {\n var _a, beforeOnClick, disabled, networkLink, onClick, url, openShareDialogOnClick, opts, link, returnVal;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, beforeOnClick = _a.beforeOnClick, disabled = _a.disabled, networkLink = _a.networkLink, onClick = _a.onClick, url = _a.url, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts;\n link = networkLink(url, opts);\n if (disabled) {\n return [2 /*return*/];\n }\n event.preventDefault();\n if (!beforeOnClick) return [3 /*break*/, 2];\n returnVal = beforeOnClick();\n if (!isPromise(returnVal)) return [3 /*break*/, 2];\n return [4 /*yield*/, returnVal];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n if (openShareDialogOnClick) {\n this.openShareDialog(link);\n }\n if (onClick) {\n onClick(event, link);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n return _this;\n }\n ShareButton.prototype.render = function () {\n var _a = this.props,\n beforeOnClick = _a.beforeOnClick,\n children = _a.children,\n className = _a.className,\n disabled = _a.disabled,\n disabledStyle = _a.disabledStyle,\n forwardedRef = _a.forwardedRef,\n networkLink = _a.networkLink,\n networkName = _a.networkName,\n onShareWindowClose = _a.onShareWindowClose,\n openShareDialogOnClick = _a.openShareDialogOnClick,\n opts = _a.opts,\n resetButtonStyle = _a.resetButtonStyle,\n style = _a.style,\n url = _a.url,\n windowHeight = _a.windowHeight,\n windowPosition = _a.windowPosition,\n windowWidth = _a.windowWidth,\n rest = __rest(_a, [\"beforeOnClick\", \"children\", \"className\", \"disabled\", \"disabledStyle\", \"forwardedRef\", \"networkLink\", \"networkName\", \"onShareWindowClose\", \"openShareDialogOnClick\", \"opts\", \"resetButtonStyle\", \"style\", \"url\", \"windowHeight\", \"windowPosition\", \"windowWidth\"]);\n var newClassName = cx('react-share__ShareButton', {\n 'react-share__ShareButton--disabled': !!disabled,\n disabled: !!disabled\n }, className);\n var newStyle = resetButtonStyle ? __assign(__assign({\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n font: 'inherit',\n color: 'inherit',\n cursor: 'pointer'\n }, style), disabled && disabledStyle) : __assign(__assign({}, style), disabled && disabledStyle);\n return React.createElement(\"button\", __assign({}, rest, {\n \"aria-label\": rest['aria-label'] || networkName,\n className: newClassName,\n onClick: this.handleClick,\n ref: forwardedRef,\n style: newStyle\n }), children);\n };\n ShareButton.defaultProps = {\n disabledStyle: {\n opacity: 0.6\n },\n openShareDialogOnClick: true,\n resetButtonStyle: true\n };\n return ShareButton;\n}(Component);\nexport default ShareButton;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { forwardRef } from 'react';\nimport ShareButton from '../ShareButton';\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n var opts = optsMap(props);\n var passedProps = __assign({}, props);\n // remove keys from passed props that are passed as opts\n var optsKeys = Object.keys(opts);\n optsKeys.forEach(function (key) {\n delete passedProps[key];\n });\n return React.createElement(ShareButton, __assign({}, defaultProps, passedProps, {\n forwardedRef: ref,\n networkName: networkName,\n networkLink: link,\n opts: optsMap(props)\n }));\n }\n CreatedButton.displayName = \"ShareButton-\".concat(networkName);\n return forwardRef(CreatedButton);\n}\nexport default createShareButton;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction facebookLink(url, _a) {\n var quote = _a.quote,\n hashtag = _a.hashtag;\n assert(url, 'facebook.url');\n return 'https://www.facebook.com/sharer/sharer.php' + objectToGetParams({\n u: url,\n quote: quote,\n hashtag: hashtag\n });\n}\nvar FacebookShareButton = createShareButton('facebook', facebookLink, function (props) {\n return {\n quote: props.quote,\n hashtag: props.hashtag\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default FacebookShareButton;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction twitterLink(url, _a) {\n var title = _a.title,\n via = _a.via,\n _b = _a.hashtags,\n hashtags = _b === void 0 ? [] : _b,\n _c = _a.related,\n related = _c === void 0 ? [] : _c;\n assert(url, 'twitter.url');\n assert(Array.isArray(hashtags), 'twitter.hashtags is not an array');\n assert(Array.isArray(related), 'twitter.related is not an array');\n return 'https://twitter.com/share' + objectToGetParams({\n url: url,\n text: title,\n via: via,\n hashtags: hashtags.length > 0 ? hashtags.join(',') : undefined,\n related: related.length > 0 ? related.join(',') : undefined\n });\n}\nvar TwitterShareButton = createShareButton('twitter', twitterLink, function (props) {\n return {\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default TwitterShareButton;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction linkedinLink(url, _a) {\n var title = _a.title,\n summary = _a.summary,\n source = _a.source;\n assert(url, 'linkedin.url');\n return 'https://linkedin.com/shareArticle' + objectToGetParams({\n url: url,\n mini: 'true',\n title: title,\n summary: summary,\n source: source\n });\n}\nvar LinkedinShareButton = createShareButton('linkedin', linkedinLink, function (_a) {\n var title = _a.title,\n summary = _a.summary,\n source = _a.source;\n return {\n title: title,\n summary: summary,\n source: source\n };\n}, {\n windowWidth: 750,\n windowHeight: 600\n});\nexport default LinkedinShareButton;","import React from \"react\";\r\nimport { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share';\r\n\r\nconst style = {\r\n padding: '4px 10px',\r\n borderRadius: '5px',\r\n}\r\n\r\nexport const ShareButtons = ({ url, title, tags }) => {\r\n return (\r\n <>\r\n <div className=\"post-social\">\r\n <h5 className='m-0 text-muted pr-2'>Share:</h5>\r\n <FacebookShareButton\r\n style={style}\r\n url={url}\r\n className=\"button is-outlined is-rounded facebook\" >\r\n <span className=\"icon pr-2\">\r\n <i className=\"fab fa-facebook-square\"></i>\r\n </span>\r\n <span className=\"text\">Facebook</span>\r\n </FacebookShareButton>\r\n <TwitterShareButton\r\n url={url}\r\n style={style}\r\n className=\"button is-outlined is-rounded twitter\"\r\n title={title}\r\n via={`reactgrid`}\r\n hashtags={tags}\r\n >\r\n <span className=\"icon pr-2\">\r\n <i className=\"fab fa-twitter\"></i>\r\n </span>\r\n <span className=\"text\">Twitter</span>\r\n </TwitterShareButton>\r\n <LinkedinShareButton\r\n url={url}\r\n style={style}\r\n className=\"button is-outlined is-rounded linkedin\"\r\n title={title} >\r\n <span className=\"icon pr-2\">\r\n <i className=\"fab fa-linkedin\"></i>\r\n </span>\r\n <span className=\"text\">LinkedIn</span>\r\n </LinkedinShareButton>\r\n </div>\r\n </>\r\n )\r\n}","import React, { FC, useEffect } from \"react\";\r\nimport { graphql, PageProps } from \"gatsby\";\r\nimport Layout from \"../components/layout\";\r\nimport SEO from \"../components/seo\";\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n} from \"reactstrap\";\r\nimport Img from 'gatsby-image';\r\nimport { isBrowserIE } from \"../functions/isBrowserIE\";\r\nimport MDXRenderer from \"gatsby-plugin-mdx/mdx-renderer\";\r\nimport BlogMDXComponents from '../components/BlogMDXComponents';\r\nimport { ShareButtons } from '../components/ShareButtons';\r\nimport \"../assets/css/gist.css\";\r\nimport SiteMetadata from './../graphql/siteMetadata.query';\r\n\r\ninterface BlogPostTemplatePageProps {\r\n [key: string]: any;\r\n}\r\n\r\nconst BlogPost: FC<PageProps<BlogPostTemplatePageProps>> = ({ data }) => {\r\n\r\n useEffect(() => {\r\n if (!isBrowserIE()) {\r\n document.documentElement.scrollTop = 0;\r\n document.scrollingElement.scrollTop = 0;\r\n }\r\n document.body.classList.add(\"blog-post\");\r\n return () => {\r\n document.body.classList.remove(\"blog-post\");\r\n }\r\n }, []);\r\n\r\n const { mdx: post, site } = data;\r\n const { title, description, pages, social, siteUrl } = site.siteMetadata;\r\n\r\n const url = `${siteUrl}/blog${post.fields.slug}`;\r\n return (\r\n <Layout pages={pages} social={social} description={description} title={title}>\r\n <SEO\r\n title={post.frontmatter.title}\r\n description={post.frontmatter.description || post.excerpt}\r\n canonicalUrl={post.frontmatter.canonicalUrl}\r\n meta={[\r\n {\r\n property: `og:image`,\r\n content: siteUrl + post.frontmatter.thumbnail.childImageSharp.fluid.src,\r\n },\r\n {\r\n property: `twitter:image`,\r\n content: siteUrl + post.frontmatter.thumbnail.childImageSharp.fluid.src,\r\n },\r\n {\r\n property: `twitter:card`,\r\n content: 'summary_large_image',\r\n },\r\n {\r\n property: `og:type`,\r\n content: 'article',\r\n },\r\n ]}\r\n />\r\n <div className=\"blog-page-header header-large\" style={{ paddingTop: 66 }}>\r\n <div\r\n className=\"page-header-image\"\r\n data-parallax={true}\r\n style={{ backgroundImage: `url(${post.frontmatter.thumbnail.childImageSharp.fluid.base64})` }}\r\n />\r\n <Container>\r\n <Row>\r\n <Col className=\"ml-auto mr-auto text-center\" md=\"8\">\r\n <h1 className=\"title\" style={{ paddingBottom: 30, lineHeight: '3rem' }}>{post.frontmatter.title}</h1>\r\n <div className=\"author\">\r\n <Img fluid={post.frontmatter.authorImg.childImageSharp.fluid} className=\"avatar img-raised\" />\r\n </div>\r\n <h4 className=\"description\" style={{ paddingTop: 30 }}>Written by {post.frontmatter.author}</h4>\r\n <h4 className=\"description\">on {post.frontmatter.date}</h4>\r\n <ShareButtons tags={post.frontmatter.tags} title={post.frontmatter.title} url={url} />\r\n </Col>\r\n </Row>\r\n </Container>\r\n </div>\r\n <div className=\"section\">\r\n <Container>\r\n <Row>\r\n <Col className=\"ml-auto mr-auto\" md=\"11\" lg=\"8\" >\r\n <div>\r\n <BlogMDXComponents>\r\n <MDXRenderer scope={undefined} components={undefined}>{post.body}</MDXRenderer>\r\n </BlogMDXComponents>\r\n </div>\r\n <hr />\r\n <ShareButtons tags={post.frontmatter.tags} title={post.frontmatter.title} url={url} />\r\n </Col>\r\n </Row>\r\n </Container>\r\n </div>\r\n </Layout>\r\n )\r\n}\r\n\r\nexport default BlogPost;\r\n\r\nexport const pageQuery = graphql`\r\n query BlogPostBySlug($slug: String!) {\r\n site {\r\n ...SiteMetadata\r\n }\r\n mdx(fields: { slug: { eq: $slug } }) {\r\n id\r\n body\r\n excerpt(pruneLength: 160)\r\n fields {\r\n slug\r\n }\r\n frontmatter {\r\n ...BlogPostNode\r\n authorImg {\r\n childImageSharp {\r\n fluid(maxWidth: 120) {\r\n ...Fluid\r\n }\r\n }\r\n }\r\n thumbnail {\r\n childImageSharp {\r\n fluid(quality: 100, maxWidth: 1920) {\r\n ...Fluid\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`\r\n"],"sourceRoot":""}