* update claude with message about components * yandex metrika to ts * rm env * add .env example * use account from env * add tests
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
export type YMetrikaProps = {
|
|
account: number
|
|
}
|
|
|
|
export function script(account: number) {
|
|
return `
|
|
(function (d, w, c) {
|
|
(w[c] = w[c] || []).push(function() {
|
|
try {
|
|
w.yaCounter${account} = new Ya.Metrika({
|
|
id:${account},
|
|
clickmap:true,
|
|
trackLinks:true,
|
|
accurateTrackBounce:true,
|
|
webvisor:true
|
|
});
|
|
} catch(e) { }
|
|
});
|
|
|
|
var n = d.getElementsByTagName("script")[0],
|
|
s = d.createElement("script"),
|
|
f = function () { n.parentNode.insertBefore(s, n); };
|
|
s.type = "text/javascript";
|
|
s.async = true;
|
|
s.src = "https://mc.yandex.ru/metrika/watch.js";
|
|
|
|
if (w.opera == "[object Opera]") {
|
|
d.addEventListener("DOMContentLoaded", f, false);
|
|
} else { f(); }
|
|
})(document, window, "yandex_metrika_callbacks");
|
|
`
|
|
}
|
|
|
|
export function YMetrika({ account }: YMetrikaProps) {
|
|
return <script dangerouslySetInnerHTML={{ __html: script(account) }} />
|
|
}
|