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) => (
-
- {renderSettingFields(values.identifier)}
+ {SettingFields(indexer, values.identifier)}
- {renderIrcSettingFields(values.identifier)}
+ {IrcSettingFields(indexer, values.identifier)}