/* * Copyright (c) 2020 - present Cloudogu GmbH * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, version 3. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more * details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see https://www.gnu.org/licenses/. */ import React, { useEffect } from "react"; import { useRef } from "react"; const useAutofocus = (enabled?: boolean, innerRef?: React.ForwardedRef) => { const ref = useRef(null); useEffect(() => { if (enabled && ref.current) { ref.current.focus(); } }, [enabled, ref]); useEffect(() => { if (innerRef) { if (typeof innerRef === "function") { innerRef(ref.current); } else { innerRef.current = ref.current; } } }, [ref, innerRef]); return ref; }; /** * @deprecated */ export default useAutofocus;