/
githubmirror
/
carbon
Обзор
Документация
Войти
/
githubmirror
/
carbon
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
components/hooks.js
65 строк
2 KB
Mike Fix
run prettier
15 авг 2021, 21:51
Не верифицирован
15 авг 2021, 21:51
1aae248
Код
Авторство
О чём код?
import React from 'react' function userTiming({ category, status, value }) { try { window.gtag('event', status, { event_category: 'Performance', event_label: category, value, }) } catch (err) { // pass } } export function usePerformanceMeasurement() { React.useEffect(() => { try { if (window.performance && window.performance.getEntriesByType) { window.performance.getEntriesByType('paint').forEach(entry => { userTiming({ category: 'paint', status: entry.name, value: entry.startTime, }) }) const navigationTiming = window.performance.getEntriesByType('navigation') ? window.performance.getEntriesByType('navigation')[0] : null if (navigationTiming) { userTiming({ category: 'paint', status: 'time to first byte', value: navigationTiming.responseEnd - navigationTiming.requestStart, }) } const javascriptFiles = performance.getEntries().filter(resource => { return resource.name.startsWith(`${location.origin}/_next/static`) }) /* * Tracks total number of javascript used, * helps in tracking the effect of granular chunks work */ userTiming({ category: 'javascript', status: 'script count', value: javascriptFiles.length, }) /* * Tracks total size of javascript used, * helps in tracking the effect of modern/nomodern work */ userTiming({ category: 'javascript', status: 'script size', value: javascriptFiles.reduce((sum, script) => script.encodedBodySize + sum, 0), }) } } catch (error) { console.error(error) } }, []) }