diff --git a/web/src/components/inputs/input_wide.tsx b/web/src/components/inputs/input_wide.tsx index bfda7ca..370f815 100644 --- a/web/src/components/inputs/input_wide.tsx +++ b/web/src/components/inputs/input_wide.tsx @@ -61,6 +61,7 @@ interface PasswordFieldWideProps { defaultValue?: string; help?: string; required?: boolean; + defaultVisible?: boolean; } export const PasswordFieldWide = ({ @@ -69,9 +70,10 @@ export const PasswordFieldWide = ({ placeholder, defaultValue, help, - required + required, + defaultVisible }: PasswordFieldWideProps) => { - const [isVisible, toggleVisibility] = useToggle(false) + const [isVisible, toggleVisibility] = useToggle(defaultVisible) return (
@@ -93,7 +95,7 @@ export const PasswordFieldWide = ({ value={field.value ? field.value : defaultValue ?? ""} onChange={field.onChange} type={isVisible ? "text" : "password"} - className={classNames(meta.touched && meta.error ? "focus:ring-red-500 focus:border-red-500 border-red-500" : "focus:ring-indigo-500 dark:focus:ring-blue-500 focus:border-indigo-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-700", "block w-full dark:bg-gray-800 shadow-sm dark:text-gray-100 sm:text-sm rounded-md")} + className={classNames(meta.touched && meta.error ? "focus:ring-red-500 focus:border-red-500 border-red-500" : "focus:ring-indigo-500 dark:focus:ring-blue-500 focus:border-indigo-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-700", "block w-full pr-10 dark:bg-gray-800 shadow-sm dark:text-gray-100 sm:text-sm rounded-md")} placeholder={placeholder} />
diff --git a/web/src/forms/settings/IndexerForms.tsx b/web/src/forms/settings/IndexerForms.tsx index 4fc4f44..a89c618 100644 --- a/web/src/forms/settings/IndexerForms.tsx +++ b/web/src/forms/settings/IndexerForms.tsx @@ -1,4 +1,4 @@ -import { Fragment } from "react"; +import {Fragment, useState} from "react"; import { toast } from "react-hot-toast"; import { useMutation, useQuery } from "react-query"; import Select, { components } from "react-select"; @@ -16,7 +16,7 @@ import { TextFieldWide, PasswordFieldWide, SwitchGroupWide -} from "../../components/inputs/input_wide"; +} from "../../components/inputs"; import { SlideOver } from "../../components/panels"; import Toast from '../../components/notifications/Toast'; @@ -57,12 +57,76 @@ const Option = (props: any) => { ); } +const IrcSettingFields = (ind: IndexerDefinition, indexer: string) => { + if (indexer !== "") { + return ( + + {ind && ind.irc && ind.irc.settings && ( +
+
+ IRC +

+ Networks, channels and invite commands are configured automatically. +

+
+ {ind.irc.settings.map((f: IndexerSetting, idx: number) => { + switch (f.type) { + case "text": + return + case "secret": + if (f.name === "invite_command") { + return + } + return + } + return null + })} + + {/* */} +
+ )} +
+ ) + } +} + +const SettingFields = (ind: IndexerDefinition, indexer: string) => { + if (indexer !== "") { + return ( +
+ {ind && ind.settings && ind.settings.map((f: any, idx: number) => { + switch (f.type) { + case "text": + return ( + + ) + case "secret": + return ( + + ) + } + return null + })} + +
+ ) + } +} + interface AddProps { isOpen: boolean; toggle: any; } export function IndexerAddForm({ isOpen, toggle }: AddProps) { + const [indexer, setIndexer] = useState({} as IndexerDefinition) + const { data } = useQuery('indexerDefinition', APIClient.indexers.getSchema, { enabled: isOpen, @@ -210,7 +274,9 @@ export function IndexerAddForm({ isOpen, toggle }: AddProps) { enabled: true, identifier: "", name: "", - irc: {}, + irc: { + invite_command: "", + }, settings: {}, }} onSubmit={onSubmit} @@ -253,7 +319,7 @@ export function IndexerAddForm({ isOpen, toggle }: AddProps) {
- {({ field, form: { setFieldValue } }: FieldProps) => ( + {({ field, form: { setFieldValue, resetForm } }: FieldProps) => (