in src/devtools/views/Settings/SettingsModal.js [40:82]
function SettingsModalImpl(_: {||}) {
const { setIsModalShowing } = useContext(SettingsModalContext);
const dismissModal = useCallback(() => setIsModalShowing(false), [
setIsModalShowing,
]);
const [selectedTabID, selectTab] = useLocalStorage<TabID>(
'Relay::DevTools::selectedSettingsTabID',
'general'
);
const modalRef = useRef<HTMLDivElement | null>(null);
useModalDismissSignal(modalRef, dismissModal);
useEffect(() => {
if (modalRef.current !== null) {
modalRef.current.focus();
}
}, [modalRef]);
const view = getSelectedTabView(selectedTabID);
return (
<div className={styles.Background}>
<div className={styles.Modal} ref={modalRef}>
<div className={styles.Tabs}>
<TabBar
currentTab={selectedTabID}
id="Settings"
selectTab={selectTab}
size="small"
tabs={tabs}
/>
<div className={styles.Spacer} />
<Button onClick={dismissModal} title="Close settings dialog">
<ButtonIcon type="close" />
</Button>
</div>
<div className={styles.Content}>{view}</div>
</div>
</div>
);
}