Outlook_Addin_LLM/node_modules/@fluentui/react-tabster/lib/hooks/useFocusObserved.js

26 lines
722 B
JavaScript

import * as React from 'react';
import { getObservedElement } from 'tabster';
import { useTabster } from './useTabster';
/**
*
* @param name - The observed element to focus
* @returns Function that will focus the
*/ export function useFocusObserved(name, options = {}) {
const { timeout = 1000 } = options;
const tabster = useTabster();
const observedAPI = tabster ? getObservedElement(tabster) : null;
return React.useCallback(()=>{
if (observedAPI) {
return observedAPI.requestFocus(name, timeout);
}
return {
result: Promise.resolve(false),
cancel: ()=>null
};
}, [
observedAPI,
name,
timeout
]);
}