Files
tolaria/apps/mobile/src/useMobileNoteCreateFlow.ts
2026-05-05 16:16:29 +02:00

41 lines
824 B
TypeScript

import { useCallback, useState } from 'react'
import type { MobileNote } from './demoData'
export function useMobileNoteCreateFlow({
createNote,
onCreated,
}: {
createNote: (title: string) => Promise<MobileNote | null>
onCreated: (note: MobileNote) => void
}) {
const [failed, setFailed] = useState(false)
const [isCreating, setIsCreating] = useState(false)
const create = useCallback(() => {
if (isCreating) {
return
}
setFailed(false)
setIsCreating(true)
void createNote('')
.then((note) => {
if (note) {
onCreated(note)
}
})
.catch(() => {
setFailed(true)
})
.finally(() => {
setIsCreating(false)
})
}, [createNote, isCreating, onCreated])
return {
create,
failed,
isCreating,
}
}