+ {
+ !chainTop && (
+
+
-
- {
- !chainTop && (
-
+
+
+
+ )
+ }
+
+ {
+ checkFileType(message.url) && (
+
+ )
+ }
+
+
+
+ {
+ (isPending || isFailed) && (
+
{
- sender && (
- sender.friendName
- || sender.nickname
- || sender.userId
+ isPending && (
+
+
+
)
}
-
-
-
- )
- }
-
- {
- checkFileType(message.url) && (
-
+
)
}
-
-
-
{
- (isPending || isFailed) && (
-
- {
- isPending && (
-
-
-
- )
- }
+ !isMobile && (
+
{
- isFailed && (
- (
+ showMenuTrigger({ message, userId, status }) && (
+
+
+
+ )
+ )}
+ menuItems={(closeDropdown) => (
+
+ {
+ isFineResend({ message, userId, status }) && (
+
+ )
+ }
+ {
+ (!isEphemeral && isFineDelete({ message, userId, status })) && (
+
+ )
+ }
+
+ )}
/>
)
}
@@ -222,74 +292,6 @@ export default function OpenchannelFileMessage({
)
}
- {
- !isMobile && (
-
- {
- (isFineResend({ message, userId, status }) || !isEphemeral) && (
- (
- showMenuTrigger({ message, userId, status }) && (
-
-
-
- )
- )}
- menuItems={(closeDropdown) => (
-
- {
- isFineResend({ message, userId, status }) && (
-
- )
- }
- {
- (!isEphemeral && isFineDelete({ message, userId, status })) && (
-
- )
- }
-
- )}
- />
- )
- }
-
- )
- }
{
contextMenu && (
)
}
-
+ >
);
}
diff --git a/src/ui/OpenchannelOGMessage/index.tsx b/src/ui/OpenchannelOGMessage/index.tsx
index ffa4d81ce..a3586dd53 100644
--- a/src/ui/OpenchannelOGMessage/index.tsx
+++ b/src/ui/OpenchannelOGMessage/index.tsx
@@ -72,7 +72,7 @@ export default function OpenchannelOGMessage({
const openLink = () => {
if (checkOGIsEnalbed(message) && ogMetaData?.url) {
- window.open(ogMetaData.url);
+ window.open(ogMetaData.url, '_blank', 'noopener,noreferrer');
}
};
@@ -112,285 +112,320 @@ export default function OpenchannelOGMessage({
}
return (
-
+ <>
-
- {
- !chainTop && (
-
(
- {
- if (!disableUserProfile) {
- toggleDropdown();
+
+
+ {
+ !chainTop && (
+
(
+ {
+ if (!disableUserProfile) {
+ toggleDropdown();
+ }
+ }}
+ />
+ )}
+ menuItems={(closeDropdown) => (
+
+ {
+ renderUserProfile
+ ? (
+ renderUserProfile({
+ user: sender,
+ close: closeDropdown,
+ })
+ )
+ : (
+
+ )
}
- }}
- />
- )}
- menuItems={(closeDropdown) => (
-
+ )}
+ />
+ )
+ }
+
+
+ {
+ !chainTop && (
+
+
+
+
+ )
+ }
+
+
+
+
+ {
+ !isMobile && (
+
+ (
+ showMenuTrigger({ message: message, userId: userId, status: status }) && (
+ {
+ toggleDropdown();
+ }}
+ >
+
+
+ )
+ )}
+ menuItems={(closeDropdown) => (
+
+ {
+ isFineCopy({ message, userId, status }) && (
+
)
- : (
-
+ }
+ {
+ (!isEphemeral && isFineEdit({ message, userId, status })) && (
+
)
- }
-
- )}
- />
+ }
+ {
+ isFineResend({ message, userId, status }) && (
+
+ )
+ }
+ {
+ (!isEphemeral && isFineDelete({ message, userId, status })) && (
+
+ )
+ }
+
+ )}
+ />
+
)
}
-
- {
- !chainTop && (
-
+
+
+ {
+ ogMetaData.url && (
+ {ogMetaData.url}
+
+ )
+ }
+ {
+ ogMetaData.title && (
+
{
- sender && (
- sender.friendName
- || sender.nickname
- || sender.userId
- )
+ ogMetaData.title
}
-
+
+ )
+ }
+ {
+ ogMetaData.description && (
+ {ogMetaData.description}
+
+ )
+ }
+ {
+ ogMetaData.url && (
+
{
- message?.createdAt && (
- format(message?.createdAt, 'p', {
- locale: dateLocale,
- })
+ defaultImage && (
+
+
+
+ )}
+ />
)
}
-
-
- )
- }
-
-
-
- {
- ((message?.updatedAt ?? 0) > 0) && (
-
- {stringSet.MESSAGE_EDITED}
-
- )
- }
-
+
+ )
+ }
-
- {
- !isMobile && (
-
-
(
- showMenuTrigger({ message: message, userId: userId, status: status }) && (
- {
- toggleDropdown();
- }}
+ {
+ (isPending || isFailed) && (
+
+ {
+ isPending && (
+
-
+
)
- )}
- menuItems={(closeDropdown) => (
-
- {
- isFineCopy({ message, userId, status }) && (
-
- )
- }
- {
- (!isEphemeral && isFineEdit({ message, userId, status })) && (
-
- )
- }
- {
- isFineResend({ message, userId, status }) && (
-
- )
- }
- {
- (!isEphemeral && isFineDelete({ message, userId, status })) && (
-
- )
- }
-
- )}
- />
-
- )
- }
-
-
-
- {
- ogMetaData.url && (
-
- {ogMetaData.url}
-
- )
- }
- {
- ogMetaData.title && (
-
- {
- ogMetaData.title
}
-
- )
- }
- {
- ogMetaData.description && (
-
- {ogMetaData.description}
-
- )
- }
- {
- ogMetaData.url && (
-
{
- defaultImage && (
-
-
-
- )}
+ isFailed && (
+
)
}
@@ -398,39 +433,6 @@ export default function OpenchannelOGMessage({
)
}
- {
- (isPending || isFailed) && (
-
- {
- isPending && (
-
-
-
- )
- }
- {
- isFailed && (
-
- )
- }
-
- )
- }
{
showContextMenu && (
@@ -459,6 +461,6 @@ export default function OpenchannelOGMessage({
/>
)
}
-
+ >
);
}
diff --git a/src/ui/OpenchannelThumbnailMessage/index.tsx b/src/ui/OpenchannelThumbnailMessage/index.tsx
index d8f2e7c8b..8a2ebd1f5 100644
--- a/src/ui/OpenchannelThumbnailMessage/index.tsx
+++ b/src/ui/OpenchannelThumbnailMessage/index.tsx
@@ -106,216 +106,288 @@ export default function OpenchannelThumbnailMessage({
}, []);
return (
-
-
- {
- !chainTop && (
-
(
- {
- if (!disableUserProfile) {
- toggleDropdown();
+ <>
+
+
+ {
+ !chainTop && (
+
(
+ {
+ if (!disableUserProfile) {
+ toggleDropdown();
+ }
+ }}
+ />
+ )}
+ menuItems={(closeDropdown) => (
+
+ {
+ renderUserProfile
+ ? (
+ renderUserProfile({
+ user: sender,
+ close: closeDropdown,
+ })
+ )
+ : (
+
+ )
}
- }}
- />
- )}
- menuItems={(closeDropdown) => (
-
+ )}
+ />
+ )
+ }
+
+
+ {
+ !chainTop && (
+
+
{
- renderUserProfile
+ sender && (
+ sender.friendName
+ || sender.nickname
+ || sender.userId
+ )
+ }
+
+
+ {
+ message?.createdAt && (
+ format(message.createdAt, 'p', {
+ locale: dateLocale,
+ })
+ )
+ }
+
+
+ )
+ }
+
+
{
+ if (isMessageSent) {
+ onClick(true);
+ }
+ }}
+ onKeyDown={() => {
+ if (isMessageSent) {
+ onClick(true);
+ }
+ }}
+ tabIndex={0}
+ {...(isMobile ? { ...onLongPress } : {})}
+ >
+
+ {
+ {
+ [SUPPORTING_TYPES.VIDEO]: (
+ (url || localUrl)
? (
- renderUserProfile({
- user: sender,
- close: closeDropdown,
- })
+
+ {
+ (thumbnailUrl)
+ ? (
+
+ )
+ : (
+
+ )
+ }
+
+
)
: (
-
)
- }
-
- )}
- />
- )
- }
-
-
- {
- !chainTop && (
-
-
- {
- sender && (
- sender.friendName
- || sender.nickname
- || sender.userId
- )
- }
-
-
- {
- message?.createdAt && (
- format(message.createdAt, 'p', {
- locale: dateLocale,
- })
- )
- }
-
-
- )
- }
-
-
{
- if (isMessageSent) {
- onClick(true);
- }
- }}
- onKeyDown={() => {
- if (isMessageSent) {
- onClick(true);
- }
- }}
- tabIndex={0}
- {...(isMobile ? { ...onLongPress } : {})}
- >
-
- {
- {
- [SUPPORTING_TYPES.VIDEO]: (
- (url || localUrl)
- ? (
-
- {
- (thumbnailUrl)
- ? (
-
- )
- : (
-
- )
- }
+ ),
+ [SUPPORTING_TYPES.IMAGE]: (
+ (url || localUrl)
+ ? (
+
+ )
+ : (
-
- )
- : (
-
- )
- ),
- [SUPPORTING_TYPES.IMAGE]: (
- (url || localUrl)
- ? (
-
- )
- : (
+ )
+ ),
+ [SUPPORTING_TYPES.UNSUPPORTED]: (
+
+ ),
+ }[getSupportingFileType(type)]
+ }
+
+
+ {
+ (isPending || isFailed) && (
+
+ {
+ isPending && (
+
- )
- ),
- [SUPPORTING_TYPES.UNSUPPORTED]: (
-
- ),
- }[getSupportingFileType(type)]
- }
-
-
- {
- (isPending || isFailed) && (
-
- {
- isPending && (
-
+
+ )
+ }
+ {
+ isFailed && (
-
- )
- }
+ )
+ }
+
+ )
+ }
+
+ {
+ !isMobile && (
+
{
- isFailed && (
- (
+ showMenuTrigger({ message, userId, status }) && (
+
+
+
+ )
+ )}
+ menuItems={(closeDropdown) => (
+
+ {
+ isFineResend({ message, userId, status }) && (
+
+ )
+ }
+ {
+ (!isEphemeral && isFineDelete({ message, userId, status })) && (
+
+ )
+ }
+
+ )}
/>
)
}
@@ -323,76 +395,6 @@ export default function OpenchannelThumbnailMessage({
)
}
- {
- !isMobile && (
-
- {
- (isFineResend({ message, userId, status }) || !isEphemeral) && (
- (
- showMenuTrigger({ message, userId, status }) && (
-
-
-
- )
- )}
- menuItems={(closeDropdown) => (
-
- {
- isFineResend({ message, userId, status }) && (
-
- )
- }
- {
- (!isEphemeral && isFineDelete({ message, userId, status })) && (
-
- )
- }
-
- )}
- />
- )
- }
-
- )
- }
{
contextMenu && (
)
}
-
+ >
);
}
diff --git a/src/ui/OpenchannelUserMessage/index.tsx b/src/ui/OpenchannelUserMessage/index.tsx
index 9aa5c7964..03733d94b 100644
--- a/src/ui/OpenchannelUserMessage/index.tsx
+++ b/src/ui/OpenchannelUserMessage/index.tsx
@@ -62,10 +62,6 @@ export default function OpenchannelUserMessage({
showRemove,
chainTop,
}: OpenChannelUserMessageProps): ReactElement {
- if (!message || message.messageType !== 'user') {
- return null;
- }
-
// hooks
const { stringSet, dateLocale } = useLocalization();
const { disableUserProfile, renderUserProfile } = useContext
(UserProfileContext);
@@ -98,252 +94,258 @@ export default function OpenchannelUserMessage({
});
const { isMobile } = useMediaQueryContext();
+ if (!message || message.messageType !== 'user') {
+ return <>>;
+ }
+
return (
-
-
- {
- !chainTop && (
-
(
- {
- if (!disableUserProfile) {
- toggleDropdown();
+ <>
+
+
+ {
+ !chainTop && (
+
(
+ {
+ if (!disableUserProfile) {
+ toggleDropdown();
+ }
+ }}
+ />
+ )}
+ menuItems={(closeDropdown) => (
+
+ {
+ renderUserProfile
+ ? (
+ renderUserProfile({
+ user: sender,
+ close: closeDropdown,
+ })
+ )
+ : (
+
+ )
}
- }}
- />
- )}
- menuItems={(closeDropdown) => (
-
+ )}
+ />
+ )
+ }
+
+
+ {
+ !chainTop && (
+
+
{
- renderUserProfile
- ? (
- renderUserProfile({
- user: sender,
- close: closeDropdown,
- })
- )
- : (
-
- )
+ sender && (
+ sender.friendName
+ || sender.nickname
+ || sender.userId
+ )
+ }
+
+
+ {
+ message?.createdAt && (
+ format(message?.createdAt, 'p', {
+ locale: dateLocale,
+ })
+ )
}
-
+
+
+ )
+ }
+
+
+ {message?.message}
+ {isEditedMessage(message) && (
+
+ {` ${stringSet.MESSAGE_EDITED} `}
+
)}
- />
- )
- }
-
-
- {
- !chainTop && (
-
-
+
+
+ {
+ (isPending || isFailed) && (
+
{
- sender && (
- sender.friendName
- || sender.nickname
- || sender.userId
+ isPending && (
+
+
+
)
}
-
-
{
- message?.createdAt && (
- format(message?.createdAt, 'p', {
- locale: dateLocale,
- })
+ isFailed && (
+
)
}
-
-
- )
- }
-
-
- {message?.message}
- {isEditedMessage(message) && (
-
- {` ${stringSet.MESSAGE_EDITED} `}
-
- )}
-
+
+ )
+ }
{
- (isPending || isFailed) && (
-
- {
- isPending && (
-
+ (
+ showMenuTrigger({ message: message, userId: userId, status: status }) && (
+ {
+ toggleDropdown();
+ }}
+ >
+
+
+ )
+ )}
+ menuItems={(closeDropdown) => (
+
-
-
- )
- }
- {
- isFailed && (
-
- )
- }
+ {
+ isFineCopy({ message: message, userId: userId, status: status }) && (
+
+ )
+ }
+ {
+ (!isEphemeral && isFineEdit({ message: message, userId: userId, status: status })) && (
+
+ )
+ }
+ {
+ isFineResend({ message: message, userId: userId, status: status }) && (
+
+ )
+ }
+ {
+ (!isEphemeral && isFineDelete({ message: message, userId: userId, status: status })) && (
+
+ )
+ }
+
+ )}
+ />
+
)
}
- {
- !isMobile && (
-
- (
- showMenuTrigger({ message: message, userId: userId, status: status }) && (
- {
- toggleDropdown();
- }}
- >
-
-
- )
- )}
- menuItems={(closeDropdown) => (
-
- {
- isFineCopy({ message: message, userId: userId, status: status }) && (
-
- )
- }
- {
- (!isEphemeral && isFineEdit({ message: message, userId: userId, status: status })) && (
-
- )
- }
- {
- isFineResend({ message: message, userId: userId, status: status }) && (
-
- )
- }
- {
- (!isEphemeral && isFineDelete({ message: message, userId: userId, status: status })) && (
-
- )
- }
-
- )}
- />
-
-
- )
- }
{
contextMenu && (
)
}
-
+ >
);
}