1import { useEffect, useState } from 'react';
3export function useBrowser() {
4 const [browser, setBrowser] = useState<{
5 name: 'chrome' | 'brave' | 'safari' | 'firefox' | 'edge' | 'other';
10 const ua = navigator.userAgent;
11 const vendor = navigator.vendor ?? '';
13 const isChromium = !!(window as any).chrome;
14 const isBrave = !!(navigator as any).brave;
15 const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);
16 const isFirefox = /Firefox/.test(ua);
17 const isEdge = /Edg/.test(ua);
18 const isChrome = isChromium && !isBrave && !isEdge && /Chrome/.test(ua);
20 let name: typeof browser['name'] = 'other';
21 if (isBrave) name = 'brave';
22 else if (isChrome) name = 'chrome';
23 else if (isSafari) name = 'safari';
24 else if (isFirefox) name = 'firefox';
25 else if (isEdge) name = 'edge';
27 setBrowser({ name, isChromium });
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list