import { Feather } from '@expo/vector-icons'; import { Stack, useLocalSearchParams, useRouter } from 'expo-router'; import React, { useEffect, useState } from 'react'; import { ActivityIndicator, Alert, Image, ScrollView, StyleSheet, Text, TouchableOpacity, View, } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; export const unstable_settings = { headerShown: false, }; import { BackButton } from '@/components/ui/back-button'; import { DynamicFormField } from '@/components/forms/dynamic-form-field'; import { getTemplateById } from '@/lib/api/templates'; import { recordTokenUsage } from '@/lib/api/balance'; import { runTemplate } from '@/lib/api/template-runs'; import { Template, TemplateGraphNode } from '@/lib/types/template'; const FALLBACK_PREVIEW = 'https://images.unsplash.com/photo-1542204165-0198c1e21a3b?auto=format&fit=crop&w=1200&q=80'; const FALLBACK_INSET = 'https://images.unsplash.com/photo-1524504388940-b1c1722653e1?auto=format&fit=crop&w=640&q=80'; export default function TemplateFormScreen() { const { id } = useLocalSearchParams<{ id: string }>(); const router = useRouter(); const [template, setTemplate] = useState