Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import { useMemo } from 'react';
import useDeviceInfo from '../utils/useDeviceInfo';
interface DevicePerformance {
isHighPerformance: boolean;
cpuCores: number;
deviceMemory?: number;
isMobile: boolean;
}
export const useDevicePerformance = (): DevicePerformance => {
const { isMobile } = useDeviceInfo();
const cpuCores = useMemo(() => navigator.hardwareConcurrency || 4, []);
const deviceMemory = useMemo(() => (navigator as Navigator & { deviceMemory?: number }).deviceMemory, []);
const isHighPerformance = useMemo(
() => (!isMobile && cpuCores >= 4) || (deviceMemory !== undefined && deviceMemory >= 8) || cpuCores >= 6,
[cpuCores, deviceMemory, isMobile]
);
return { isHighPerformance, cpuCores, deviceMemory, isMobile };
};
|