feat(web): disable IRC fields (#1220)

This commit is contained in:
martylukyy 2023-10-27 17:33:41 +02:00 committed by GitHub
parent 2372c942b3
commit 40a1a4c014
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -30,46 +30,55 @@ const ChannelsFieldArray = ({ channels }: ChannelsFieldArrayProps) => (
{({ remove, push }: FieldArrayRenderProps) => ( {({ remove, push }: FieldArrayRenderProps) => (
<div className="flex flex-col space-y-2 border-2 border-dashed dark:border-gray-700 p-4"> <div className="flex flex-col space-y-2 border-2 border-dashed dark:border-gray-700 p-4">
{channels && channels.length > 0 ? ( {channels && channels.length > 0 ? (
channels.map((_channel: IrcChannel, index: number) => ( channels.map((_channel: IrcChannel, index: number) => {
<div key={index} className="flex justify-between"> const isDisabled = channels[index].name === "#ptp-announce-dev";
<div className="flex"> return (
<Field name={`channels.${index}.name`}> <div key={index} className="flex justify-between">
{({ field }: FieldProps) => ( <div className="flex">
<input <Field name={`channels.${index}.name`}>
{...field} {({ field }: FieldProps) => (
type="text" <input
value={field.value ?? ""} {...field}
onChange={field.onChange} type="text"
placeholder="#Channel" value={field.value ?? ""}
className="mr-4 dark:bg-gray-700 focus:ring-blue-500 dark:focus:ring-blue-500 focus:border-blue-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-600 block w-full shadow-sm sm:text-sm dark:text-white rounded-md" onChange={field.onChange}
/> placeholder="#Channel"
)} className={`mr-4 focus:ring-blue-500 dark:focus:ring-blue-500 focus:border-blue-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-600 block w-full shadow-sm sm:text-sm rounded-md
</Field> ${isDisabled ? "disabled dark:bg-gray-800 dark:text-gray-500" : "dark:bg-gray-700 dark:text-white"}`}
disabled={isDisabled}
/>
)}
</Field>
<Field name={`channels.${index}.password`}> <Field name={`channels.${index}.password`}>
{({ field }: FieldProps) => ( {({ field }: FieldProps) => (
<input <input
{...field} {...field}
type="text" type="text"
value={field.value ?? ""} value={field.value ?? ""}
onChange={field.onChange} onChange={field.onChange}
placeholder="Password" placeholder="Password"
className="mr-4 dark:bg-gray-700 focus:ring-blue-500 dark:focus:ring-blue-500 focus:border-blue-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-600 block w-full shadow-sm sm:text-sm dark:text-white rounded-md" className={`mr-4 focus:ring-blue-500 dark:focus:ring-blue-500 focus:border-blue-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-600 block w-full shadow-sm sm:text-sm rounded-md
/> ${isDisabled ? "disabled dark:bg-gray-800 dark:text-gray-500" : "dark:bg-gray-700 dark:text-white"}`}
)} disabled={isDisabled}
</Field> />
)}
</Field>
</div>
<button
type="button"
className={`bg-white dark:bg-gray-700 rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-500
${isDisabled ? "disabled hidden" : ""}`}
onClick={() => remove(index)}
disabled={isDisabled}
>
<span className="sr-only">Remove</span>
<XMarkIcon className="h-6 w-6" aria-hidden="true" />
</button>
</div> </div>
);
<button })
type="button"
className="bg-white dark:bg-gray-700 rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:focus:ring-blue-500"
onClick={() => remove(index)}
>
<span className="sr-only">Remove</span>
<XMarkIcon className="h-6 w-6" aria-hidden="true" />
</button>
</div>
))
) : ( ) : (
<span className="text-center text-sm text-grey-darker dark:text-white"> <span className="text-center text-sm text-grey-darker dark:text-white">
No channels! No channels!
@ -87,7 +96,6 @@ const ChannelsFieldArray = ({ channels }: ChannelsFieldArrayProps) => (
</FieldArray> </FieldArray>
</div> </div>
); );
interface IrcNetworkAddFormValues { interface IrcNetworkAddFormValues {
name: string; name: string;
enabled: boolean; enabled: boolean;