diff --git a/packages/apps/chat-app/src/components/Chat/Detail/ChatInfo.tsx b/packages/apps/chat-app/src/components/Chat/Detail/ChatInfo.tsx index 3517f8c4a..f2b541963 100644 --- a/packages/apps/chat-app/src/components/Chat/Detail/ChatInfo.tsx +++ b/packages/apps/chat-app/src/components/Chat/Detail/ChatInfo.tsx @@ -29,6 +29,7 @@ export const ChatInfo = ({ const target = usePortal('modal-container'); const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity(); + if (!loggedOnIdentity) return null; const conversationContent = conversation.fileMetadata.appData.content; const recipients = conversationContent.recipients.filter( (recipient) => recipient !== loggedOnIdentity diff --git a/packages/apps/chat-app/src/components/Chat/Starred/StarredChatMessages.tsx b/packages/apps/chat-app/src/components/Chat/Starred/StarredChatMessages.tsx index a2bb9314b..a984cc8e7 100644 --- a/packages/apps/chat-app/src/components/Chat/Starred/StarredChatMessages.tsx +++ b/packages/apps/chat-app/src/components/Chat/Starred/StarredChatMessages.tsx @@ -1,6 +1,5 @@ import { ActionGroup, - AuthorImage, AuthorName, CHAT_ROOT_PATH, ConnectionImage, diff --git a/packages/apps/community-app/src/components/Auth/ExtendCirclePermissionDialog.tsx b/packages/apps/community-app/src/components/Auth/ExtendCirclePermissionDialog.tsx index 930af0c4f..78a4146df 100644 --- a/packages/apps/community-app/src/components/Auth/ExtendCirclePermissionDialog.tsx +++ b/packages/apps/community-app/src/components/Auth/ExtendCirclePermissionDialog.tsx @@ -71,7 +71,7 @@ const useCommunityAccessVerifier = ( } }); - if (!circleHasAccess) { + if (!circleHasAccess && loggedOnIdentity) { const extendUrl = getExtendCirclePermissionUrl( loggedOnIdentity, '', diff --git a/packages/apps/community-app/src/hooks/community/messages/useCommunityMessage.ts b/packages/apps/community-app/src/hooks/community/messages/useCommunityMessage.ts index 1e1f7572d..413163d10 100644 --- a/packages/apps/community-app/src/hooks/community/messages/useCommunityMessage.ts +++ b/packages/apps/community-app/src/hooks/community/messages/useCommunityMessage.ts @@ -174,7 +174,7 @@ export const useCommunityMessage = (props?: { ...updatedChatMessage, }; const identity = dotYouClient.getLoggedInIdentity(); - if (identity !== updatedChatMessage.fileMetadata.originalAuthor) { + if (identity && identity !== updatedChatMessage.fileMetadata.originalAuthor) { transformedMessage.fileMetadata.appData.content.collaborators = Array.from( new Set([ ...(updatedChatMessage.fileMetadata.appData.content.collaborators || []), @@ -294,7 +294,7 @@ export const useCommunityMessage = (props?: { onMutate: async ({ updatedChatMessage, community }) => { const transformedMessage = { ...updatedChatMessage }; const identity = dotYouClient.getLoggedInIdentity(); - if (identity !== updatedChatMessage.fileMetadata.originalAuthor) { + if (identity && identity !== updatedChatMessage.fileMetadata.originalAuthor) { transformedMessage.fileMetadata.appData.content.collaborators = Array.from( new Set([ ...(updatedChatMessage.fileMetadata.appData.content.collaborators || []), diff --git a/packages/apps/community-app/src/hooks/community/status/useMyStatus.ts b/packages/apps/community-app/src/hooks/community/status/useMyStatus.ts index 6b968543f..416db01f0 100644 --- a/packages/apps/community-app/src/hooks/community/status/useMyStatus.ts +++ b/packages/apps/community-app/src/hooks/community/status/useMyStatus.ts @@ -14,7 +14,11 @@ export const useMyStatus = (props: { const queryClient = useQueryClient(); const fetchMyStatus = async (community: HomebaseFile) => { - return await getStatus(dotYouClient, community, odinId || dotYouClient.getLoggedInIdentity()); + return await getStatus( + dotYouClient, + community, + odinId || dotYouClient.getLoggedInIdentity() || '' + ); }; const setMyStatus = async ({ diff --git a/packages/apps/community-app/src/hooks/community/threads/useCommunityThreads.ts b/packages/apps/community-app/src/hooks/community/threads/useCommunityThreads.ts index 62b42a39a..143a9040b 100644 --- a/packages/apps/community-app/src/hooks/community/threads/useCommunityThreads.ts +++ b/packages/apps/community-app/src/hooks/community/threads/useCommunityThreads.ts @@ -100,7 +100,9 @@ export const useCommunityThreads = ({ ); return ( - allThreadMeta.filter((meta) => meta && meta.participants.includes(identity)) as ThreadMeta[] + allThreadMeta.filter( + (meta) => meta && identity && meta.participants.includes(identity) + ) as ThreadMeta[] ).sort((a, b) => b.lastMessageCreated - a.lastMessageCreated); }; diff --git a/packages/apps/community-app/src/hooks/community/useCommunityMemberUpdater.ts b/packages/apps/community-app/src/hooks/community/useCommunityMemberUpdater.ts index 7edee546e..bb94ed630 100644 --- a/packages/apps/community-app/src/hooks/community/useCommunityMemberUpdater.ts +++ b/packages/apps/community-app/src/hooks/community/useCommunityMemberUpdater.ts @@ -21,7 +21,10 @@ export const useCommunityMemberUpdater = ( useEffect(() => { if (!membersFetched || !community || !isAdmin || !communityCircleId) return; - const circleMembers = [...(members?.map((member) => member.domain) || []), loggedOnIdentity]; + const circleMembers = [ + ...(members?.map((member) => member.domain) || []), + loggedOnIdentity, + ].filter(Boolean) as string[]; const communityMembers = community.fileMetadata.appData.content.members || []; if ( diff --git a/packages/apps/community-app/src/providers/CommunityStatusProvider.ts b/packages/apps/community-app/src/providers/CommunityStatusProvider.ts index 1220059e0..3d84b53ba 100644 --- a/packages/apps/community-app/src/providers/CommunityStatusProvider.ts +++ b/packages/apps/community-app/src/providers/CommunityStatusProvider.ts @@ -37,7 +37,7 @@ export const setStatus = async ( const currentStatus = await internalGetStatus( dotYouClient, community, - dotYouClient.getLoggedInIdentity() + dotYouClient.getLoggedInIdentity() || '' ); const newStatus: NewHomebaseFile = { @@ -67,7 +67,7 @@ const internalSaveStatusFile = async ( const targetDrive = getTargetDriveFromCommunityId( community.fileMetadata.appData.uniqueId as string ); - const uniqueId = toGuidId(dotYouClient.getLoggedInIdentity()); + const uniqueId = toGuidId(dotYouClient.getLoggedInIdentity() || ''); const metedata: UploadFileMetadata = { versionTag: status?.fileMetadata.versionTag, allowDistribution: true, diff --git a/packages/apps/mail-app/src/components/Composer/MailComposer.tsx b/packages/apps/mail-app/src/components/Composer/MailComposer.tsx index ca719a543..2893bbfe7 100644 --- a/packages/apps/mail-app/src/components/Composer/MailComposer.tsx +++ b/packages/apps/mail-app/src/components/Composer/MailComposer.tsx @@ -78,7 +78,7 @@ export const MailComposer = ({ message: [], originId: originId || getNewId(), threadId: threadId || getNewId(), - sender: loggedOnIdentity, + sender: loggedOnIdentity || '', forwardedMailThread, deliveryStatus: MailDeliveryStatus.NotSent, }, diff --git a/packages/apps/public-app/src/components/ConnectionActions/ConnectLink/ConnectLink.tsx b/packages/apps/public-app/src/components/ConnectionActions/ConnectLink/ConnectLink.tsx index 8baa73854..1ac49768e 100644 --- a/packages/apps/public-app/src/components/ConnectionActions/ConnectLink/ConnectLink.tsx +++ b/packages/apps/public-app/src/components/ConnectionActions/ConnectLink/ConnectLink.tsx @@ -7,10 +7,13 @@ const ConnectLink = ({ className }: { className: string }) => { const isAuthenticated = dotYouClient.isAuthenticated(); const isOwner = dotYouClient.isOwner(); - const host = new DotYouClient({ - hostIdentity: dotYouClient.getLoggedInIdentity(), - api: ApiType.Guest, - }).getRoot(); + const loggedOnIdentity = dotYouClient.getLoggedInIdentity(); + const host = loggedOnIdentity + ? new DotYouClient({ + hostIdentity: loggedOnIdentity, + api: ApiType.Guest, + }).getRoot() + : undefined; const { data: securityContext } = useSecurityContext(undefined, isAuthenticated).fetch; const isConnected = diff --git a/packages/common/common-app/src/permissions/CirclePermissionView/CirclePermissionView.tsx b/packages/common/common-app/src/permissions/CirclePermissionView/CirclePermissionView.tsx index 9a77402db..4b2e73ee2 100644 --- a/packages/common/common-app/src/permissions/CirclePermissionView/CirclePermissionView.tsx +++ b/packages/common/common-app/src/permissions/CirclePermissionView/CirclePermissionView.tsx @@ -38,6 +38,7 @@ export const CirclePermissionView = ({ stringGuidsEqual(circleDef.id, AUTO_CONNECTIONS_CIRCLE_ID); if (!circleDef) return null; + if (!loggedInIdentity) return null; const LinkWrapper = ({ children, className }: { children: ReactNode; className: string }) => onClick ? ( diff --git a/packages/common/common-app/src/socialFeed/Blocks/Meta/Meta.tsx b/packages/common/common-app/src/socialFeed/Blocks/Meta/Meta.tsx index fb928c745..36d51e241 100644 --- a/packages/common/common-app/src/socialFeed/Blocks/Meta/Meta.tsx +++ b/packages/common/common-app/src/socialFeed/Blocks/Meta/Meta.tsx @@ -190,6 +190,7 @@ const ExternalActions = ({ getReportContentUrl, } = useManageSocialFeed({ odinId }); + if (!loggedOnIdentity) return null; const host = new DotYouClient({ api: ApiType.Guest, hostIdentity: loggedOnIdentity }).getRoot(); const options: ActionGroupOptionProps[] = [ { @@ -286,10 +287,12 @@ const GroupChannelActions = ({ const hostIdentity = useDotYouClientContext().getHostIdentity(); const isAuthor = postFile.fileMetadata.originalAuthor === loggedOnIdentity; - const host = new DotYouClient({ - api: ApiType.Guest, - hostIdentity: loggedOnIdentity, - }).getRoot(); + const host = loggedOnIdentity + ? new DotYouClient({ + api: ApiType.Guest, + hostIdentity: loggedOnIdentity, + }).getRoot() + : undefined; const { removeFromFeed: { mutateAsync: removeFromMyFeed }, @@ -316,7 +319,7 @@ const GroupChannelActions = ({ }, }); - if (isAuthor) { + if (isAuthor && host) { options.push({ icon: Pencil, label: t( diff --git a/packages/common/common-app/src/socialFeed/Blocks/Meta/OwnerActions.tsx b/packages/common/common-app/src/socialFeed/Blocks/Meta/OwnerActions.tsx index 6bc960c61..4b17e9c13 100644 --- a/packages/common/common-app/src/socialFeed/Blocks/Meta/OwnerActions.tsx +++ b/packages/common/common-app/src/socialFeed/Blocks/Meta/OwnerActions.tsx @@ -31,6 +31,7 @@ export const OwnerActions = ({ const { mutateAsync: editPost } = useManagePost().update; const navigate = useNavigate(); + if (!loggedOnIdentity) return null; const host = new DotYouClient({ api: ApiType.Guest, hostIdentity: loggedOnIdentity }).getRoot(); return ( diff --git a/packages/libs/js-lib/src/core/DotYouClient.ts b/packages/libs/js-lib/src/core/DotYouClient.ts index 3d22378cb..130a9f5ae 100644 --- a/packages/libs/js-lib/src/core/DotYouClient.ts +++ b/packages/libs/js-lib/src/core/DotYouClient.ts @@ -49,8 +49,12 @@ export class BaseDotYouClient { ); } - getLoggedInIdentity(): string { - return this._options?.loggedInIdentity || this.getHostIdentity(); + getLoggedInIdentity(): string | undefined { + return this._options?.loggedInIdentity || + this.getType() === ApiType.Owner || + this.getType() === ApiType.App + ? this.getHostIdentity() + : undefined; } isOwner(): boolean {