diff --git a/app/components/Input.tsx b/app/components/Input.tsx index 4e89941702..d02871039c 100644 --- a/app/components/Input.tsx +++ b/app/components/Input.tsx @@ -1,3 +1,4 @@ +import React from 'react'; import { twMerge } from "tailwind-merge"; import { IconDefinition } from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -11,7 +12,11 @@ interface InputProps extends React.InputHTMLAttributes { icon?: IconDefinition; } -export function Input({ label, icon, className, id, ...rest }: InputProps) { +export const Input = React.forwardRef(({ + label, icon, className, id, ...rest + }: InputProps, + ref: React.ForwardedRef +) => { return (
{label && } @@ -21,6 +26,7 @@ export function Input({ label, icon, className, id, ...rest }: InputProps) { )}
); -} +}); diff --git a/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectTtsModel.tsx b/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectTtsModel.tsx index c68b894cd1..0e6d354744 100644 --- a/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectTtsModel.tsx +++ b/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectTtsModel.tsx @@ -1,5 +1,5 @@ -import { useState } from 'react' +import { useCallback, useState } from 'react' import { faChevronLeft } from "@fortawesome/pro-solid-svg-icons"; import { H2, ButtonIcon, Input } from "~/components"; @@ -28,6 +28,11 @@ export const PageSelectTtsModel = ({ }) const slicedArray = filteredListOfModels.slice(0, 20); + + const refCallback = useCallback((node:HTMLInputElement)=>{ + if(node) node.focus(); + //auto focus on the mounting on the input component + },[]); return(
@@ -40,19 +45,23 @@ export const PageSelectTtsModel = ({

Search TTS Voices

setQuery(e.target.value)} /> -
- {slicedArray.map((item)=>{ - return( - onSelect(item as TtsModelListItem)} - /> - ); - })} +
+
+ {slicedArray.map((item)=>{ + return( + onSelect(item as TtsModelListItem)} + /> + ); + })} +
); diff --git a/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectV2VModel.tsx b/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectV2VModel.tsx index 2e584dd731..a22015fc2f 100644 --- a/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectV2VModel.tsx +++ b/app/pages/PageEnigma/comps/SidePanelTabs/AudioTab/pageSelectV2VModel.tsx @@ -1,5 +1,5 @@ -import { useState } from 'react' +import { useCallback, useState } from 'react' import { faChevronLeft } from "@fortawesome/pro-solid-svg-icons"; import { H2, ButtonIcon, Input } from "~/components"; @@ -29,6 +29,10 @@ export const PageSelectV2VModel = ({ const slicedArray = filteredListOfModels.slice(0, 20); + const refCallback = useCallback((node:HTMLInputElement)=>{ + if(node) node.focus(); + },[]); + return(
@@ -40,6 +44,7 @@ export const PageSelectV2VModel = ({

Search TTS Voices

setQuery(e.target.value)}