UNPKG

@letanure/resend-cli

Version:

A command-line interface for Resend email API

47 lines 2.02 kB
import { useInputSelector } from '../components/forms/useInputSelector.js'; import { listBroadcasts } from '../modules/broadcasts/list/action.js'; import { displayFields } from '../modules/broadcasts/list/fields.js'; export function useBroadcastSelector(onSelect) { return useInputSelector({ title: 'Broadcasts', loadFunction: async (data, apiKey) => { const result = await listBroadcasts(data, apiKey); if (result.success && result.data) { // Transform broadcasts to SelectableItem format const transformedData = result.data.data.map((broadcast) => ({ id: broadcast.id, name: broadcast.name, audienceId: broadcast.audience_id, status: broadcast.status, created_at: broadcast.created_at, scheduled_at: broadcast.scheduled_at, sent_at: broadcast.sent_at, })); return { ...result, data: { data: transformedData }, }; } return { success: false, error: result.error || 'Failed to load broadcasts', }; }, formatData: (data) => { return data.data.map((broadcast) => ({ id: broadcast.id, name: broadcast.name || '', audienceId: broadcast.audienceId || '', status: broadcast.status, created_at: new Date(broadcast.created_at).toLocaleString(), scheduled_at: broadcast.scheduled_at ? new Date(broadcast.scheduled_at).toLocaleString() : '', sent_at: broadcast.sent_at ? new Date(broadcast.sent_at).toLocaleString() : '', })); }, displayFields, loadData: {}, noDataMessage: 'No broadcasts found.', onSelect, }); } //# sourceMappingURL=useBroadcastSelector.js.map