Changeset View
Changeset View
Standalone View
Standalone View
web/chat/edit-message-provider.js
// @flow | // @flow | ||||
import FocusTrap from 'focus-trap-react'; | |||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import * as React from 'react'; | import * as React from 'react'; | ||||
import ModalOverlay from 'lib/components/modal-overlay.react.js'; | import ModalOverlay from 'lib/components/modal-overlay.react.js'; | ||||
import type { ChatMessageInfoItem } from 'lib/selectors/chat-selectors.js'; | import type { ChatMessageInfoItem } from 'lib/selectors/chat-selectors.js'; | ||||
import type { ThreadInfo } from 'lib/types/thread-types'; | import type { ThreadInfo } from 'lib/types/thread-types'; | ||||
import { EditTextMessage } from './edit-text-message.react.js'; | import { EditTextMessage } from './edit-text-message.react.js'; | ||||
▲ Show 20 Lines • Show All 125 Lines • ▼ Show 20 Lines | [ | ||||
updatePosition, | updatePosition, | ||||
], | ], | ||||
); | ); | ||||
const modalOverlay = React.useMemo(() => { | const modalOverlay = React.useMemo(() => { | ||||
if (!modal) { | if (!modal) { | ||||
return null; | return null; | ||||
} | } | ||||
return <ModalOverlay onClose={clearEditModal}>{modal}</ModalOverlay>; | return ( | ||||
<ModalOverlay onClose={clearEditModal}> | |||||
<FocusTrap>{modal}</FocusTrap> | |||||
</ModalOverlay> | |||||
); | |||||
}, [clearEditModal, modal]); | }, [clearEditModal, modal]); | ||||
return ( | return ( | ||||
<EditModalContext.Provider value={value}> | <EditModalContext.Provider value={value}> | ||||
{children} | {children} | ||||
{modalOverlay} | {modalOverlay} | ||||
</EditModalContext.Provider> | </EditModalContext.Provider> | ||||
); | ); | ||||
Show All 9 Lines |