@letanure/resend-cli
Version:
A command-line interface for Resend email API
38 lines • 2.61 kB
JavaScript
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