Changeset View
Changeset View
Standalone View
Standalone View
web/utils/tooltip-action-utils.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import _debounce from 'lodash/debounce.js'; | import _debounce from 'lodash/debounce.js'; | ||||
import * as React from 'react'; | import * as React from 'react'; | ||||
import { useModalContext } from 'lib/components/modal-provider.react.js'; | import { useModalContext } from 'lib/components/modal-provider.react.js'; | ||||
import SWMansionIcon from 'lib/components/SWMansionIcon.react.js'; | |||||
import type { ChatMessageInfoItem } from 'lib/selectors/chat-selectors.js'; | import type { ChatMessageInfoItem } from 'lib/selectors/chat-selectors.js'; | ||||
import { useCanEditMessage } from 'lib/shared/edit-messages-utils.js'; | import { useCanEditMessage } from 'lib/shared/edit-messages-utils.js'; | ||||
import { createMessageReply } from 'lib/shared/message-utils.js'; | import { createMessageReply } from 'lib/shared/message-utils.js'; | ||||
import { useCanCreateReactionFromMessage } from 'lib/shared/reaction-utils.js'; | import { useCanCreateReactionFromMessage } from 'lib/shared/reaction-utils.js'; | ||||
import { | import { | ||||
threadHasPermission, | threadHasPermission, | ||||
useSidebarExistsOrCanBeCreated, | useSidebarExistsOrCanBeCreated, | ||||
} from 'lib/shared/thread-utils.js'; | } from 'lib/shared/thread-utils.js'; | ||||
▲ Show 20 Lines • Show All 219 Lines • ▼ Show 20 Lines | ): ?MessageTooltipAction { | ||||
const canEditMessage = useCanEditMessage(threadInfo, messageInfo); | const canEditMessage = useCanEditMessage(threadInfo, messageInfo); | ||||
const { renderEditModal } = useEditModalContext(); | const { renderEditModal } = useEditModalContext(); | ||||
const { clearTooltip } = useTooltipContext(); | const { clearTooltip } = useTooltipContext(); | ||||
return React.useMemo(() => { | return React.useMemo(() => { | ||||
if (!canEditMessage) { | if (!canEditMessage) { | ||||
return null; | return null; | ||||
} | } | ||||
const buttonContent = ( | const buttonContent = <CommIcon icon="edit-filled" size={18} />; | ||||
<SWMansionIcon icon="edit-1" size={18} disableFill={false} /> | |||||
); | |||||
const onClickEdit = () => { | const onClickEdit = () => { | ||||
clearTooltip(); | clearTooltip(); | ||||
renderEditModal({ | renderEditModal({ | ||||
messageInfo: item, | messageInfo: item, | ||||
threadInfo, | threadInfo, | ||||
isError: false, | isError: false, | ||||
editedMessageDraft: messageInfo.text, | editedMessageDraft: messageInfo.text, | ||||
}); | }); | ||||
▲ Show 20 Lines • Show All 239 Lines • Show Last 20 Lines |