parent
11ad8c6f7c
commit
a7d8606df9
@ -0,0 +1,56 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
|
||||
|
||||
import styles from './styles.module.css';
|
||||
|
||||
const AD_ELEMENT_ID = 'ad-element-id';
|
||||
|
||||
function SidebarAd() {
|
||||
return (
|
||||
<a
|
||||
className={styles.container}
|
||||
href="https://www.moonchaser.io/?utm_source=techinterviewhandbook&utm_medium=referral&utm_campaign=website_docs_sidebar"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener">
|
||||
<p className={styles.tagline}>
|
||||
<strong>Get paid more.</strong> Receive risk-free salary negotiation
|
||||
help from Moonchaser. You pay nothing unless your offer is increased.
|
||||
</p>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
|
||||
function initAd() {
|
||||
const $adEl = (() => {
|
||||
const $el = document.getElementById(AD_ELEMENT_ID);
|
||||
if ($el) {
|
||||
return $el;
|
||||
}
|
||||
|
||||
const $tocEl = document.querySelector('[class^="tableOfContents"]');
|
||||
const $newEl = document.createElement('div');
|
||||
$newEl.id = AD_ELEMENT_ID;
|
||||
$tocEl.appendChild($newEl);
|
||||
|
||||
return $newEl;
|
||||
})();
|
||||
|
||||
ReactDOM.render(<SidebarAd />, $adEl);
|
||||
}
|
||||
|
||||
if (ExecutionEnvironment.canUseDOM) {
|
||||
window.onload = initAd;
|
||||
}
|
||||
|
||||
export default (function (context, options) {
|
||||
return {
|
||||
name: 'sidebar-ad',
|
||||
onRouteUpdate() {
|
||||
// Render only after the page renders.
|
||||
setTimeout(() => {
|
||||
initAd();
|
||||
}, 0);
|
||||
},
|
||||
};
|
||||
})();
|
@ -0,0 +1,27 @@
|
||||
.container {
|
||||
background-color: var(--ifm-color-primary-light);
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
border-radius: var(--ifm-global-radius);
|
||||
color: #fff;
|
||||
display: block;
|
||||
margin: 1rem;
|
||||
padding: 1rem;
|
||||
transition: background-color var(--ifm-transition-fast)
|
||||
var(--ifm-transition-timing-default);
|
||||
}
|
||||
|
||||
.container:hover {
|
||||
background-color: var(--ifm-color-primary);
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.tagline {
|
||||
font-size: 0.75rem;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 96px;
|
||||
}
|
Loading…
Reference in new issue