You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
493 B

2 months ago
  1. // @flow
  2. type Navigator = Navigator & { userAgentData?: NavigatorUAData };
  3. interface NavigatorUAData {
  4. brands: Array<{ brand: string, version: string }>;
  5. mobile: boolean;
  6. platform: string;
  7. }
  8. export default function getUAString(): string {
  9. const uaData = (navigator: Navigator).userAgentData;
  10. if (uaData?.brands && Array.isArray(uaData.brands)) {
  11. return uaData.brands
  12. .map((item) => `${item.brand}/${item.version}`)
  13. .join(' ');
  14. }
  15. return navigator.userAgent;
  16. }