* Convert OLModal to named exports only
* Make closeButton the default for OLModalHeader
* Set `closeButton={false}` for modal that is not dismissible
* Fix duplicated imports
* Remove another unnecessary `closeButton` prop
* Fix import
---------
Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: ddd7be6e59a966ac634683d2494d6e9d2c3732e6
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import {
|
|
OLModal,
|
|
OLModalBody,
|
|
OLModalHeader,
|
|
OLModalTitle,
|
|
} from '@/shared/components/ol/ol-modal'
|
|
import { useTranslation } from 'react-i18next'
|
|
import { SettingsModalBody } from './settings-modal-body'
|
|
import {
|
|
SettingsModalProvider,
|
|
useSettingsModalContext,
|
|
} from '../../contexts/settings-modal-context'
|
|
import useFocusOnSetting from '../../hooks/use-focus-on-setting'
|
|
|
|
const SettingsModalWrapper = () => {
|
|
return (
|
|
<SettingsModalProvider>
|
|
<SettingsModal />
|
|
</SettingsModalProvider>
|
|
)
|
|
}
|
|
|
|
const SettingsModal = () => {
|
|
const { t } = useTranslation()
|
|
const { show, setShow, settingsTabs, activeTab, setActiveTab } =
|
|
useSettingsModalContext()
|
|
|
|
useFocusOnSetting()
|
|
|
|
return (
|
|
<OLModal
|
|
show={show}
|
|
onHide={() => setShow(false)}
|
|
size="lg"
|
|
backdropClassName={
|
|
activeTab === 'appearance'
|
|
? 'ide-settings-modal-transparent-backdrop'
|
|
: undefined
|
|
}
|
|
>
|
|
<OLModalHeader>
|
|
<OLModalTitle>{t('settings')}</OLModalTitle>
|
|
</OLModalHeader>
|
|
<OLModalBody className="ide-settings-modal-body">
|
|
<SettingsModalBody
|
|
activeTab={activeTab}
|
|
setActiveTab={setActiveTab}
|
|
settingsTabs={settingsTabs}
|
|
/>
|
|
</OLModalBody>
|
|
</OLModal>
|
|
)
|
|
}
|
|
|
|
export default SettingsModalWrapper
|