import { t } from 'i18next'; import { MouseEvent } from 'react'; import { useTranslation } from 'react-i18next'; import { useCreateRadioStation } from '/@/renderer/features/radio/mutations/create-radio-station-mutation'; import { useCurrentServer } from '/@/renderer/store'; import { Group } from '/@/shared/components/group/group'; import { closeAllModals, openModal } from '/@/shared/components/modal/modal'; import { ModalButton } from '/@/shared/components/modal/model-shared'; import { Stack } from '/@/shared/components/stack/stack'; import { TextInput } from '/@/shared/components/text-input/text-input'; import { toast } from '/@/shared/components/toast/toast'; import { useForm } from '/@/shared/hooks/use-form'; import { CreateInternetRadioStationBody, ServerListItem } from '/@/shared/types/domain-types'; interface CreateRadioStationFormProps { onCancel: () => void; } export const CreateRadioStationForm = ({ onCancel }: CreateRadioStationFormProps) => { const { t } = useTranslation(); const mutation = useCreateRadioStation({}); const server = useCurrentServer(); const form = useForm({ initialValues: { homepageUrl: '', name: '', streamUrl: '', }, }); const handleSubmit = form.onSubmit((values) => { if (!server) return; mutation.mutate( { apiClientProps: { serverId: server.id }, body: values, }, { onError: (error) => { toast.error({ message: (error as Error).message, title: t('error.genericError', { postProcess: 'sentenceCase', }) as string, }); }, onSuccess: () => { closeAllModals(); }, }, ); }); return (
{t('common.cancel', { postProcess: 'sentenceCase' })} {t('common.create', { postProcess: 'sentenceCase' })}
); }; export const openCreateRadioStationModal = ( server: null | ServerListItem, e?: MouseEvent, ) => { e?.stopPropagation(); if (!server) { toast.error({ message: t('common.error.noServer', { postProcess: 'sentenceCase' }) as string, }); return; } openModal({ children: , title: t('action.createRadioStation', { postProcess: 'titleCase' }) as string, }); };