import type { Component, Setter } from 'solid-js'; import { Show, onMount } from 'solid-js'; type FieldProps = { label: string; name: string; placeholder: string; } & ( | { type: 'textarea'; setRef: Setter; } | { type: 'text' | 'email'; setRef: Setter; } ); const InputField: Component = ({ label, name, type, placeholder, setRef }) => { let inputRef: HTMLInputElement | undefined; onMount(() => { if (!inputRef) return; if (type === 'textarea') return; setRef(inputRef); // ^? }); return ( <>
); }; const TextAreaField: Component = ({ label, name, placeholder, type, setRef }) => { let textAreaRef: HTMLTextAreaElement | undefined; onMount(() => { if (!textAreaRef) return; if (type !== 'textarea') return; setRef(textAreaRef); }); return ( <>