diff --git a/apps/mobile/src/features/cloud/ConnectOnboardingRouteScreen.tsx b/apps/mobile/src/features/cloud/ConnectOnboardingRouteScreen.tsx
index 5e3eac56da6f..e11933e271bf 100644
--- a/apps/mobile/src/features/cloud/ConnectOnboardingRouteScreen.tsx
+++ b/apps/mobile/src/features/cloud/ConnectOnboardingRouteScreen.tsx
@@ -1,10 +1,11 @@
+import { Button } from "../../components/ui/Button";
import { Toolbar } from "../../components/ui/Toolbar";
import { ScreenScrollView as ScrollView } from "../../components/ui/ScreenScrollView";
import { useAuth } from "@clerk/expo";
import { StackActions, useNavigation } from "@react-navigation/native";
import { useEffect, useState } from "react";
-import { Platform, Pressable, RefreshControl, View } from "react-native";
+import { Platform, RefreshControl, View } from "react-native";
import { useSafeAreaInsets } from "react-native-safe-area-context";
import { reportAtomCommandResult, settlePromise } from "@t3tools/client-runtime/state/runtime";
@@ -125,14 +126,7 @@ function ConfiguredConnectOnboardingRouteScreen() {
)}
{userId ? (
-
- {"Don't show this again"}
-
+
) : null}
diff --git a/apps/mobile/src/features/connection/CloudEnvironmentRows.tsx b/apps/mobile/src/features/connection/CloudEnvironmentRows.tsx
index dc498a873cc2..a3ab8a682eba 100644
--- a/apps/mobile/src/features/connection/CloudEnvironmentRows.tsx
+++ b/apps/mobile/src/features/connection/CloudEnvironmentRows.tsx
@@ -1,3 +1,4 @@
+import { Button } from "../../components/ui/Button";
import { AppActivityIndicator } from "../../components/ui/AppActivityIndicator";
import { ConnectionTraceId } from "./ConnectionTraceId";
import { useAuth } from "@clerk/expo";
@@ -161,15 +162,13 @@ function CloudEnvironmentRowsContent(
{controller.relayDiscovery.errorTraceId ? (
) : null}
- {
void controller.refreshRelayEnvironments();
}}
- className="self-start rounded-full bg-subtle px-3.5 py-2 active:opacity-70"
- >
- Try again
-
+ />
) : null}
@@ -432,20 +431,13 @@ function CloudEnvironmentRowShell(props: {
function CopyTraceIdButton(props: { readonly traceId: string }) {
return (
- {
copyTextWithHaptic(props.traceId, { target: "connection-trace-id" });
}}
- className="self-start flex-row items-center gap-1.5 rounded-full bg-subtle px-3 py-2 active:opacity-70"
- >
-
- Copy trace ID
-
+ icon="doc.on.doc"
+ />
);
}
diff --git a/apps/mobile/src/features/connection/EnvironmentConnectionNotice.tsx b/apps/mobile/src/features/connection/EnvironmentConnectionNotice.tsx
index 27db2c88f206..a3e9f38d30a7 100644
--- a/apps/mobile/src/features/connection/EnvironmentConnectionNotice.tsx
+++ b/apps/mobile/src/features/connection/EnvironmentConnectionNotice.tsx
@@ -1,3 +1,4 @@
+import { Button } from "../../components/ui/Button";
import { AppActivityIndicator } from "../../components/ui/AppActivityIndicator";
import { ConnectionTraceId } from "./ConnectionTraceId";
import {
@@ -5,7 +6,7 @@ import {
type EnvironmentConnectionPresentation,
} from "@t3tools/client-runtime/connection";
import { SymbolView } from "../../components/ui/AppSymbol";
-import { Pressable, View } from "react-native";
+import { View } from "react-native";
import { AppText as Text } from "../../components/ui/AppText";
@@ -87,13 +88,9 @@ export function EnvironmentConnectionNotice(props: {
{props.connection.phase !== "offline" && props.connection.phase !== "unsupported" ? (
-
- Retry now
-
+
+
+
) : null}
diff --git a/apps/mobile/src/features/projects/AddProjectScreen.tsx b/apps/mobile/src/features/projects/AddProjectScreen.tsx
index 6aef54306547..8dc8750ab0c5 100644
--- a/apps/mobile/src/features/projects/AddProjectScreen.tsx
+++ b/apps/mobile/src/features/projects/AddProjectScreen.tsx
@@ -433,12 +433,13 @@ function EmptyEnvironmentState() {
Start or reconnect an environment before adding a project.
- navigation.dispatch(StackActions.replace("ConnectionsNew"))}
- className="mt-1 rounded-full bg-primary px-4 py-2.5 active:opacity-70"
- >
- Add environment
-
+
+
);
}
diff --git a/apps/mobile/src/features/settings/EnvironmentRoutesSection.tsx b/apps/mobile/src/features/settings/EnvironmentRoutesSection.tsx
index b34ce987fa2b..42bc0e28bd30 100644
--- a/apps/mobile/src/features/settings/EnvironmentRoutesSection.tsx
+++ b/apps/mobile/src/features/settings/EnvironmentRoutesSection.tsx
@@ -1,3 +1,4 @@
+import { Button } from "../../components/ui/Button";
import * as Dialog from "../../components/ui/Dialog";
import { useAtomValue } from "@effect/atom-react";
import {
@@ -132,15 +133,11 @@ export function EnvironmentRoutesSection({
title="Routes"
trailing={
routes.length > 1 ? (
- setEditing((value) => !value)}
- className="px-2 py-1 active:opacity-70"
- >
-
- {editing ? "Done" : "Edit"}
-
-
+ />
) : undefined
}
>
diff --git a/apps/mobile/src/features/settings/SettingsMicrophoneRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsMicrophoneRouteScreen.tsx
index 495ac0031fc9..77154bb071d8 100644
--- a/apps/mobile/src/features/settings/SettingsMicrophoneRouteScreen.tsx
+++ b/apps/mobile/src/features/settings/SettingsMicrophoneRouteScreen.tsx
@@ -1,3 +1,4 @@
+import { Button } from "../../components/ui/Button";
import { ScreenScrollView as ScrollView } from "../../components/ui/ScreenScrollView";
import { useAtomSet, useAtomValue } from "@effect/atom-react";
import { AsyncResult } from "effect/reactivity";
@@ -166,15 +167,11 @@ export function SettingsMicrophoneRouteScreen() {
title="Preferred order"
trailing={
hasDevices ? (
- setEditing((value) => !value)}
- className="px-2 py-1 active:opacity-70"
- >
-
- {editing ? "Done" : "Edit"}
-
-
+ />
) : undefined
}
>
diff --git a/apps/mobile/src/features/settings/SettingsScheduledTasksRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsScheduledTasksRouteScreen.tsx
index f79b26e86bfd..8913502da919 100644
--- a/apps/mobile/src/features/settings/SettingsScheduledTasksRouteScreen.tsx
+++ b/apps/mobile/src/features/settings/SettingsScheduledTasksRouteScreen.tsx
@@ -1067,9 +1067,9 @@ function WebhookScheduleDetails({
{resolved.note !== null ? (
{resolved.note}
) : null}
-
Dialog.alert("Rotate URL?", "The current URL stops working immediately.", [
@@ -1092,12 +1092,8 @@ function WebhookScheduleDetails({
},
])
}
- className="min-h-11 justify-center active:opacity-70 disabled:opacity-50"
- >
-
- {rotating ? "Rotating…" : "Rotate URL"}
-
-
+ loading={rotating}
+ />
>
)}
{signatureConfigured ? (
diff --git a/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx
index d023e5c57e3b..c7883989ddb1 100644
--- a/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx
+++ b/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx
@@ -1,3 +1,4 @@
+import { Button } from "../../components/ui/Button";
import { AuthSettingsWriteScope } from "@t3tools/contracts";
import { readEnvironmentScope, useEnvironmentsWithScope } from "../../state/session";
import { AutoSettleDaysField } from "./components/AutoSettleDaysField";
@@ -5,7 +6,7 @@ import { ScreenScrollView as ScrollView } from "../../components/ui/ScreenScroll
import { useAtomSet, useAtomValue } from "@effect/atom-react";
import { AsyncResult } from "effect/reactivity";
import { useRef, useState } from "react";
-import { Pressable, View } from "react-native";
+import { View } from "react-native";
import { useSafeAreaInsets } from "react-native-safe-area-context";
import { DEFAULT_SERVER_SETTINGS } from "@t3tools/contracts";
@@ -228,16 +229,12 @@ function AutoSettleSettingsRows() {
{mismatches.map((mismatch) => mismatch.label).join(", ")}
- writeToAll(autoSettlePatch)}
- className="self-start rounded-full bg-subtle px-4 py-2 active:opacity-70"
- >
-
- Apply auto-settle defaults
-
-
+ />
) : null}
diff --git a/apps/mobile/src/features/threads/NewTaskRouteScreen.tsx b/apps/mobile/src/features/threads/NewTaskRouteScreen.tsx
index ff539280c115..acbb805c5bee 100644
--- a/apps/mobile/src/features/threads/NewTaskRouteScreen.tsx
+++ b/apps/mobile/src/features/threads/NewTaskRouteScreen.tsx
@@ -400,33 +400,28 @@ export function NewTaskRouteScreen({ route }: StaticScreenProps
) : !catalogState.hasReadyEnvironment ? (
- navigation.navigate("ConnectionsNew")}
- >
-
- Add environment
-
-
+
+
) : (
<>
- navigation.dispatch(StackActions.push("AddProject"))}
- >
-
- Add new project
-
-
+
+
{canStartScratch ? (
- void startScratch()}
- >
-
- Start without a project
-
-
+ />
) : null}
>
)}