UNPKG

@letanure/resend-cli

Version:

A command-line interface for Resend email API

38 lines 2.61 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useApp } from 'ink'; import { useState } from 'react'; import { App as AppApiKey } from './modules/api-keys/App.js'; import { App as AppAudiences } from './modules/audiences/App.js'; import { App as AppBroadcasts } from './modules/broadcasts/App.js'; import { App as AppContacts } from './modules/contacts/App.js'; import { App as AppDomains } from './modules/domains/App.js'; import { App as AppEmail } from './modules/emails/App.js'; import { Module } from './types/index.js'; import { MainMenu } from './components/MainMenu.js'; import { DryRunProvider } from './contexts/DryRunProvider.js'; import { ResendProvider } from './contexts/ResendProvider.js'; export const AppMain = ({ isDryRun = false, apiKey }) => { const { exit } = useApp(); const [screenState, setScreenState] = useState(Module.main); const [lastSelectedMainMenuItem, setLastSelectedMainMenuItem] = useState(); return (_jsx(DryRunProvider, { isDryRun: isDryRun, children: _jsxs(ResendProvider, { apiKey: apiKey, children: [screenState === Module.main && (_jsx(MainMenu, { onSelect: (menuId) => setScreenState(menuId), onExit: exit, initialSelectedKey: lastSelectedMainMenuItem })), screenState === Module.email && (_jsx(AppEmail, { onExit: () => { setLastSelectedMainMenuItem(Module.email); setScreenState(Module.main); } })), screenState === Module.domains && (_jsx(AppDomains, { onExit: () => { setLastSelectedMainMenuItem(Module.domains); setScreenState(Module.main); } })), screenState === Module.apiKeys && (_jsx(AppApiKey, { onExit: () => { setLastSelectedMainMenuItem(Module.apiKeys); setScreenState(Module.main); } })), screenState === Module.audiences && (_jsx(AppAudiences, { onExit: () => { setLastSelectedMainMenuItem(Module.audiences); setScreenState(Module.main); } })), screenState === Module.broadcasts && (_jsx(AppBroadcasts, { onExit: () => { setLastSelectedMainMenuItem(Module.broadcasts); setScreenState(Module.main); } })), screenState === Module.contacts && (_jsx(AppContacts, { onExit: () => { setLastSelectedMainMenuItem(Module.contacts); setScreenState(Module.main); } }))] }) })); }; //# sourceMappingURL=AppMain.js.map