23 lines · 916 B · TypeScript
RawDownload
import type { AuthClientPresentationMetadata } from "@t3tools/contracts";import * as Device from "expo-device";import { Platform } from "react-native"; export function authClientMetadata(appVersion?: string): AuthClientPresentationMetadata {  const osMajorVersion = Number.parseInt(Device.osVersion?.split(".")[0] ?? "", 10);  const deviceModel = Device.modelName?.trim();   return {    label: "T3 Code Mobile",    deviceType:      Device.deviceType === Device.DeviceType.TABLET        ? "tablet"        : Device.deviceType === Device.DeviceType.PHONE          ? "mobile"          : "unknown",    ...(Platform.OS === "ios" ? { os: "iOS" } : Platform.OS === "android" ? { os: "Android" } : {}),    ...(Number.isFinite(osMajorVersion) && osMajorVersion > 0 ? { osMajorVersion } : {}),    ...(deviceModel ? { deviceModel } : {}),    surface: "mobile",    ...(appVersion ? { appVersion } : {}),  };}