expo-popcore-app/hooks/use-announcement-actions.ts

28 lines
725 B
TypeScript

import { root } from '@repo/core'
import { AnnouncementController } from '@repo/sdk'
import { useState } from 'react'
export const useAnnouncementActions = () => {
const [markReadLoading, setMarkReadLoading] = useState(false)
const [markReadError, setMarkReadError] = useState<Error | null>(null)
const markRead = async (id: string) => {
setMarkReadLoading(true)
setMarkReadError(null)
try {
const announcementController = root.get(AnnouncementController)
await announcementController.markRead({ id })
} catch (error) {
setMarkReadError(error as Error)
} finally {
setMarkReadLoading(false)
}
}
return {
markRead,
markReadLoading,
markReadError,
}
}