import CloseIcon from '@mui/icons-material/Close' import { Alert, AppBar, Box, Button, Container, Dialog, Grid, IconButton, Paper, Slide, TextField, Toolbar, Typography } from '@mui/material' import { TransitionProps } from '@mui/material/transitions' import { matchW } from 'fp-ts/lib/Either' import { pipe } from 'fp-ts/lib/function' import { useAtomValue } from 'jotai' import { forwardRef, startTransition, useState } from 'react' import { customArgsState } from '../../atoms/downloadTemplate' import { serverURL } from '../../atoms/settings' import { useToast } from '../../hooks/toast' import { useI18n } from '../../hooks/useI18n' import { ffetch } from '../../lib/httpClient' import { Subscription } from '../../services/subscriptions' import ExtraDownloadOptions from '../ExtraDownloadOptions' type Props = { subscription: Subscription | undefined onClose: () => void } const Transition = forwardRef(function Transition( props: TransitionProps & { children: React.ReactElement }, ref: React.Ref, ) { return }) const SubscriptionsEditDialog: React.FC = ({ subscription, onClose }) => { const [subscriptionURL, setSubscriptionURL] = useState('') const [subscriptionCron, setSubscriptionCron] = useState('') const customArgs = useAtomValue(customArgsState) const { i18n } = useI18n() const { pushMessage } = useToast() const baseURL = useAtomValue(serverURL) const editSubscription = async (sub: Subscription) => { const task = ffetch(`${baseURL}/subscriptions`, { method: 'PATCH', body: JSON.stringify(sub) }) const either = await task() pipe( either, matchW( (l) => pushMessage(l, 'error'), (_) => onClose() ) ) } return ( onClose()} aria-label="close" > {i18n.t('subscriptionsButtonLabel')} theme.palette.background.default, minHeight: (theme) => `calc(99vh - ${theme.mixins.toolbar.minHeight}px)` }}> Editing {subscription?.url} setSubscriptionURL(e.target.value)} /> setSubscriptionCron(e.target.value)} /> ) } export default SubscriptionsEditDialog