fix(web): TS typings and always active navbar link (#470)

* fix TS typings since `yarn build` was failing on my machine.
* fixed the dashboard navlink (it was always active on my end)
This commit is contained in:
stacksmash76 2022-09-23 19:03:00 +02:00 committed by GitHub
parent 8a782a5cab
commit 553320bf1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 60 additions and 35 deletions

View file

@ -16,6 +16,17 @@ interface UpdateProps {
feed: Feed;
}
interface InitialValues {
id: number;
indexer: string;
enabled: boolean;
type: FeedType;
name: string;
url: string;
api_key: string;
interval: number;
}
export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
const [isTesting, setIsTesting] = useState(false);
const [isTestSuccessful, setIsSuccessfulTest] = useState(false);
@ -26,7 +37,7 @@ export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
{
onSuccess: () => {
queryClient.invalidateQueries(["feeds"]);
toast.custom((t) => <Toast type="success" body={`${feed.name} was updated successfully`} t={t}/>);
toast.custom((t) => <Toast type="success" body={`${feed.name} was updated successfully`} t={t} />);
toggle();
}
}
@ -41,12 +52,11 @@ export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
{
onSuccess: () => {
queryClient.invalidateQueries(["feeds"]);
toast.custom((t) => <Toast type="success" body={`${feed.name} was deleted.`} t={t}/>);
toast.custom((t) => <Toast type="success" body={`${feed.name} was deleted.`} t={t} />);
}
}
);
const deleteAction = () => {
deleteMutation.mutate(feed.id);
};
@ -85,7 +95,7 @@ export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
testFeedMutation.mutate(data as Feed);
};
const initialValues = {
const initialValues: InitialValues = {
id: feed.id,
indexer: feed.indexer,
enabled: feed.enabled,
@ -97,7 +107,7 @@ export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
};
return (
<SlideOver
<SlideOver<InitialValues>
type="UPDATE"
title="Feed"
isOpen={isOpen}
@ -112,7 +122,7 @@ export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
>
{(values) => (
<div>
<TextFieldWide name="name" label="Name" required={true}/>
<TextFieldWide name="name" label="Name" required={true} />
<div className="space-y-4 divide-y divide-gray-200 dark:divide-gray-700">
<div
@ -131,7 +141,7 @@ export function FeedUpdateForm({ isOpen, toggle, feed }: UpdateProps) {
</div>
<div className="py-6 space-y-6 sm:py-0 sm:space-y-0 sm:divide-y sm:divide-gray-200">
<SwitchGroupWide name="enabled" label="Enabled"/>
<SwitchGroupWide name="enabled" label="Enabled" />
</div>
</div>
{componentMap[values.type]}
@ -150,10 +160,10 @@ function FormFieldsTorznab() {
help="Torznab url"
/>
<PasswordFieldWide name="api_key" label="API key"/>
<PasswordFieldWide name="api_key" label="API key" />
<NumberFieldWide name="interval" label="Refresh interval"
help="Minutes. Recommended 15-30. Too low and risk ban."/>
help="Minutes. Recommended 15-30. Too low and risk ban." />
</div>
);
}
@ -167,12 +177,12 @@ function FormFieldsRSS() {
help="RSS url"
/>
<NumberFieldWide name="interval" label="Refresh interval" help="Minutes. Recommended 15-30. Too low and risk ban."/>
<NumberFieldWide name="interval" label="Refresh interval" help="Minutes. Recommended 15-30. Too low and risk ban." />
</div>
);
}
const componentMap: componentMapType = {
TORZNAB: <FormFieldsTorznab/>,
TORZNAB: <FormFieldsTorznab />,
RSS: <FormFieldsRSS />
};