import { useCurrentLocation } from "#/features/location" import { usePlan } from "#/features/planner" import { Button, Cell, Page, Row, TextInput } from "#/ui/components"; import { DayView } from "#/ui/components/specialized/plan/day"; import { Body1 } from "#/ui/typography"; import { useCallback, useMemo, useState } from "react"; import { useCommit, useDate } from "#/features/calendar"; import { format, formatDistance, formatDistanceToNow, set } from "date-fns"; import styled from "styled-components/native"; import { Status } from "#/features/planner/algorithm/build-graph"; import { useNavigation } from "@react-navigation/native"; const Wrapper = styled.ScrollView` `; const getStats = (status: Status) => { if (status.current === 'running') { const runTime = formatDistanceToNow(status.start, { includeSeconds: true }) return `calulated ${status.nodes} nodes in ${runTime} using ${status.strategy}`; } const runTime = formatDistance(status.start, status.end, { includeSeconds: true }) return `calulated ${status.nodes} nodes in ${runTime} using ${status.strategy}`; }; const PlanDayScreen: React.FC = () => { const date = useDate(); const [location] = useCurrentLocation(); const [startTime, setStartTime] = useState('06:00'); const [commit] = useCommit(); const { navigate } = useNavigation(); const current = useMemo( () => location || { id: 'unknown', title: 'Unknown', }, [location] ) const [plan, options] = usePlan({ location: current, }) const update = useCallback( () => { const target = new Date(`2000-01-01T${startTime}:00`) const corrected = set(date, { hours: target.getHours(), minutes: target.getMinutes(), }) plan(corrected); }, [date, plan, startTime], ) return ( {!options.error && options.status && options.status.current === 'running' ? (