import { defaultStyles } from '@/constants/defaultStyles'; import { supabase } from '@/lib/supabase'; import { router, Stack, useLocalSearchParams } from 'expo-router'; import { useState } from 'react'; import { ActivityIndicator, Alert, Keyboard, KeyboardAvoidingView, Platform, Pressable, ScrollView, Text, TextInput, TouchableWithoutFeedback, View, } from 'react-native'; export default function CreateTask() { const aId = (useLocalSearchParams().aId as string) ?? null; const [title, SetTitle] = useState(''); const [description, SetDescription] = useState(''); const [isCompleted, SetIsCompleted] = useState(false); const [isSaving, SetIsSaving] = useState(false); const CreateTask = async () => { if (title.trim() === '') { Alert.alert('Title is required!'); return; } const { data, error: userError } = await supabase.auth.getUser(); if (userError || !data.user) { router.replace('../createUser'); return; } SetIsSaving(true); const { error: dbError } = await supabase.from('tasks').insert({ title: title.trim(), description: description.trim(), isCompleted, lastChanged: new Date().toISOString(), uId: data.user.id, aId, }); if (dbError) { SetIsSaving(false); Alert.alert('Task could not be created, please try again'); return; } Alert.alert('Task successfully created!'); SetTitle(''); SetDescription(''); SetIsCompleted(false); SetIsSaving(false); router.back(); }; const inputClassName = 'rounded-2xl border border-app-border bg-app-subtle px-4 py-3 text-base text-text-main'; const labelClassName = 'mb-2 text-sm font-semibold text-text-secondary'; return ( <> Create Task Add a small step to move this assignment forward. Title Description SetIsCompleted((state) => !state)} disabled={isSaving} className={`mb-6 flex-row items-center rounded-2xl border p-4 ${ isCompleted ? 'border-accent bg-accent-soft' : 'border-app-border bg-app-subtle' }`} > {isCompleted && ( )} Mark as completed You can change this later. {isSaving ? ( Creating... ) : ( Create Task )} router.back()} disabled={isSaving} > Cancel ); }