aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/lib')
-rw-r--r--apps/web/lib/utils.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/web/lib/utils.ts b/apps/web/lib/utils.ts
index 88283f01..12207765 100644
--- a/apps/web/lib/utils.ts
+++ b/apps/web/lib/utils.ts
@@ -5,3 +5,27 @@ import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
+
+export type OS = "macos" | "ios" | "windows" | "android" | "linux" | null;
+
+export function getOS() {
+ if (typeof window === "undefined") return;
+ const userAgent = window.navigator.userAgent.toLowerCase();
+ const macosPlatforms = /(macintosh|macintel|macppc|mac68k|macos)/i;
+ const windowsPlatforms = /(win32|win64|windows|wince)/i;
+ const iosPlatforms = /(iphone|ipad|ipod)/i;
+ let os: OS = null;
+
+ if (macosPlatforms.test(userAgent)) {
+ os = "macos";
+ } else if (iosPlatforms.test(userAgent)) {
+ os = "ios";
+ } else if (windowsPlatforms.test(userAgent)) {
+ os = "windows";
+ } else if (/android/.test(userAgent)) {
+ os = "android";
+ } else if (!os && /linux/.test(userAgent)) {
+ os = "linux";
+ }
+ return os;
+}