Add MVP features: edit mode, voice input, Gitea push, service autocomplete
- new.tsx: edit mode via editId param, per-field voice dictation (MIC/STOP), service autocomplete dropdown from DB history - incident/[id].tsx: Push to Gitea action reads SecureStore config + md template - index.tsx: homeView=capture redirects to /new on first mount - _layout.tsx: onboarding gate wired (useSettings + router.replace) - ci: GitHub Actions workflow builds debug APK via expo prebuild + Gradle Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+12
-1
@@ -1,4 +1,4 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
@@ -8,12 +8,23 @@ import {
|
||||
} from "react-native";
|
||||
import { router } from "expo-router";
|
||||
import { getIncidents } from "@/lib/db";
|
||||
import { useSettings } from "@/hooks/useSettings";
|
||||
import type { Incident } from "@/types/incident";
|
||||
import { Colors } from "@/constants/theme";
|
||||
|
||||
export default function HomeScreen() {
|
||||
const [incidents, setIncidents] = useState<Incident[]>([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const { settings, ready } = useSettings();
|
||||
const didRedirect = useRef(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (!ready || didRedirect.current) return;
|
||||
if (settings.homeView === "capture") {
|
||||
didRedirect.current = true;
|
||||
router.push("/new");
|
||||
}
|
||||
}, [ready, settings.homeView]);
|
||||
|
||||
useEffect(() => {
|
||||
loadIncidents();
|
||||
|
||||
Reference in New Issue
Block a user