diff --git a/packages/apps/feed-app/src/components/SocialFeed/UnreachableIdentity.tsx b/packages/apps/feed-app/src/components/SocialFeed/UnreachableIdentity.tsx
index 08ba0e499..da7f09962 100644
--- a/packages/apps/feed-app/src/components/SocialFeed/UnreachableIdentity.tsx
+++ b/packages/apps/feed-app/src/components/SocialFeed/UnreachableIdentity.tsx
@@ -1,11 +1,6 @@
-import {
- ActionGroup,
- t,
- useDotYouClientContext,
- useManageSocialFeed,
-} from '@homebase-id/common-app';
+import { ActionGroup, t, useOdinClientContext, useManageSocialFeed } from '@homebase-id/common-app';
import { Times, UserX } from '@homebase-id/common-app/icons';
-import { ApiType, DotYouClient, HomebaseFile } from '@homebase-id/js-lib/core';
+import { ApiType, OdinClient, HomebaseFile } from '@homebase-id/js-lib/core';
import { PostContent } from '@homebase-id/js-lib/public';
interface UnreachableIdentityProps {
@@ -15,7 +10,7 @@ interface UnreachableIdentityProps {
}
export const UnreachableIdentity = ({ className, postFile, odinId }: UnreachableIdentityProps) => {
- const host = useDotYouClientContext().getRoot;
+ const host = useOdinClientContext().getRoot;
const {
removeFromFeed: { mutateAsync: removeFromMyFeed },
@@ -30,7 +25,7 @@ export const UnreachableIdentity = ({ className, postFile, odinId }: Unreachable
{t('This content is no longer accessible')}.
{
- const { hasSharedSecret } = useDotYouClient();
+ const { hasSharedSecret } = useOdinClient();
const { data: hasValidToken, isFetched } = useVerifyToken();
useEffect(() => {
@@ -45,8 +45,8 @@ export const useValidateAuthorization = () => {
};
export const useAuth = () => {
- const { getDotYouClient } = useDotYouClient();
- const preauth = async (): Promise => await preauthApps(getDotYouClient());
+ const { getOdinClient } = useOdinClient();
+ const preauth = async (): Promise => await preauthApps(getOdinClient());
return {
preauth,
diff --git a/packages/apps/feed-app/src/hooks/auth/useVerifyToken.ts b/packages/apps/feed-app/src/hooks/auth/useVerifyToken.ts
index de2ecfcf9..26034959f 100644
--- a/packages/apps/feed-app/src/hooks/auth/useVerifyToken.ts
+++ b/packages/apps/feed-app/src/hooks/auth/useVerifyToken.ts
@@ -1,16 +1,16 @@
import { QueryClient, useQuery } from '@tanstack/react-query';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { hasValidToken as hasValidYouAuthToken } from '@homebase-id/js-lib/auth';
const MINUTE_IN_MS = 60000;
export const useVerifyToken = () => {
- const dotYouClient = useDotYouClientContext();
- const isAuthenticated = dotYouClient.isAuthenticated();
+ const odinClient = useOdinClientContext();
+ const isAuthenticated = odinClient.isAuthenticated();
const fetchData = async () => {
// When hasValidYouAuthToken returns undefined, it means that it couldn't be checked.. so we assume it's valid, to avoid unnecessary logouts
- return (await hasValidYouAuthToken(dotYouClient)) ?? true;
+ return (await hasValidYouAuthToken(odinClient)) ?? true;
};
return useQuery({
queryKey: ['verify-feed-token'],
diff --git a/packages/apps/feed-app/src/hooks/useLiveFeedProcessor.ts b/packages/apps/feed-app/src/hooks/useLiveFeedProcessor.ts
index 7b93dce07..a70d82717 100644
--- a/packages/apps/feed-app/src/hooks/useLiveFeedProcessor.ts
+++ b/packages/apps/feed-app/src/hooks/useLiveFeedProcessor.ts
@@ -3,7 +3,7 @@ import { QueryClient, useQuery, useQueryClient } from '@tanstack/react-query';
import {
DeletedHomebaseFile,
- DotYouClient,
+ OdinClient,
FileQueryParams,
HomebaseFile,
queryBatch,
@@ -23,7 +23,7 @@ import {
invalidateComments,
invalidateEmojiSummary,
invalidateSocialFeeds,
- useDotYouClientContext,
+ useOdinClientContext,
useWebsocketSubscriber,
} from '@homebase-id/common-app';
import { BlogConfig, dsrToPostFile } from '@homebase-id/js-lib/public';
@@ -50,31 +50,31 @@ export const useLiveFeedProcessor = () => {
const useFeedInboxProcessor = (isEnabled?: boolean) => {
const { data: chnlDrives, isFetchedAfterMount: channelsFetched } = useChannelDrives(!!isEnabled);
const queryClient = useQueryClient();
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const fetchData = async () => {
const lastProcessedTime = queryClient.getQueryState(['process-feed-inbox'])?.dataUpdatedAt;
const lastProcessedWithBuffer = lastProcessedTime && lastProcessedTime - MINUTE_IN_MS * 2;
- await processInbox(dotYouClient, BlogConfig.FeedDrive, 100);
+ await processInbox(odinClient, BlogConfig.FeedDrive, 100);
if (lastProcessedWithBuffer) {
- const updatedPosts = await findChangesSinceTimestamp(dotYouClient, lastProcessedWithBuffer, {
+ const updatedPosts = await findChangesSinceTimestamp(odinClient, lastProcessedWithBuffer, {
targetDrive: BlogConfig.FeedDrive,
fileType: [BlogConfig.PostFileType],
});
isDebug && console.debug('[FeedInboxProcessor] new posts', updatedPosts.length);
- await processPostsBatch(dotYouClient, queryClient, BlogConfig.FeedDrive, updatedPosts);
+ await processPostsBatch(odinClient, queryClient, BlogConfig.FeedDrive, updatedPosts);
}
if (chnlDrives)
await Promise.all(
chnlDrives.map(async (chnlDrive) => {
- await processInbox(dotYouClient, chnlDrive.targetDriveInfo, 100);
+ await processInbox(odinClient, chnlDrive.targetDriveInfo, 100);
if (lastProcessedWithBuffer) {
const updatedPosts = await findChangesSinceTimestamp(
- dotYouClient,
+ odinClient,
lastProcessedWithBuffer,
{
targetDrive: chnlDrive.targetDriveInfo,
@@ -84,7 +84,7 @@ const useFeedInboxProcessor = (isEnabled?: boolean) => {
isDebug &&
console.debug('[FeedInboxProcessor] new posts for channel', updatedPosts.length);
await processPostsBatch(
- dotYouClient,
+ odinClient,
queryClient,
chnlDrive.targetDriveInfo,
updatedPosts
@@ -110,12 +110,12 @@ const useFeedInboxProcessor = (isEnabled?: boolean) => {
};
const useFeedWebSocket = (isEnabled: boolean) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const queryClient = useQueryClient();
const websocketDrives = useWebsocketDrives();
const handler = useCallback(
- async (_: DotYouClient, notification: TypedConnectionNotification) => {
+ async (_: OdinClient, notification: TypedConnectionNotification) => {
if (
(notification.notificationType === 'fileAdded' ||
notification.notificationType === 'fileModified' ||
@@ -125,7 +125,7 @@ const useFeedWebSocket = (isEnabled: boolean) => {
notification.header.fileSystemType.toLowerCase() === 'standard'
) {
await internalProcessNewPost(
- dotYouClient,
+ odinClient,
queryClient,
BlogConfig.FeedDrive,
notification.header
@@ -148,21 +148,21 @@ const useFeedWebSocket = (isEnabled: boolean) => {
const BATCH_SIZE = 2000;
const findChangesSinceTimestamp = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
timeStamp: number,
params: FileQueryParams
) => {
const modifiedCursor = getQueryModifiedCursorFromTime(timeStamp); // Friday, 31 May 2024 09:38:54.678
const batchCursor = getQueryBatchCursorFromTime(new Date().getTime(), timeStamp);
- const newFiles = await queryBatch(dotYouClient, params, {
+ const newFiles = await queryBatch(odinClient, params, {
maxRecords: BATCH_SIZE,
cursorState: batchCursor,
includeMetadataHeader: true,
includeTransferHistory: false,
});
- const modifiedFiles = await queryModified(dotYouClient, params, {
+ const modifiedFiles = await queryModified(odinClient, params, {
maxRecords: BATCH_SIZE,
cursor: modifiedCursor + '',
excludePreviewThumbnail: false,
@@ -174,20 +174,20 @@ const findChangesSinceTimestamp = async (
};
const processPostsBatch = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
queryClient: QueryClient,
targetDrive: TargetDrive,
posts: (HomebaseFile | DeletedHomebaseFile)[]
) => {
await Promise.all(
posts.map(async (postDsr) =>
- internalProcessNewPost(dotYouClient, queryClient, targetDrive, postDsr)
+ internalProcessNewPost(odinClient, queryClient, targetDrive, postDsr)
)
);
};
const internalProcessNewPost = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
queryClient: QueryClient,
targetDrive: TargetDrive,
dsr: HomebaseFile | DeletedHomebaseFile
@@ -197,7 +197,7 @@ const internalProcessNewPost = async (
return;
}
- const post = await dsrToPostFile(dotYouClient, dsr, targetDrive, true);
+ const post = await dsrToPostFile(odinClient, dsr, targetDrive, true);
if (post) insertNewPostIntoFeed(queryClient, post);
else invalidateSocialFeeds(queryClient);
diff --git a/packages/apps/feed-app/src/templates/Auth/Auth.tsx b/packages/apps/feed-app/src/templates/Auth/Auth.tsx
index f07ec92b0..ba0eece75 100644
--- a/packages/apps/feed-app/src/templates/Auth/Auth.tsx
+++ b/packages/apps/feed-app/src/templates/Auth/Auth.tsx
@@ -5,7 +5,7 @@ import {
DialogWrapper,
Alert,
t,
- useDotYouClientContext,
+ useOdinClientContext,
OWNER_APPS_ROOT,
} from '@homebase-id/common-app';
import { AutoAuthorize, LoginBox } from '../../components/Auth/LoginBox/LoginBox';
@@ -17,7 +17,7 @@ const Auth = () => {
const [searchParams] = useSearchParams();
const isError = searchParams.get('state') === 'finalize-error';
- const isAuthenticated = useDotYouClientContext().isAuthenticated();
+ const isAuthenticated = useOdinClientContext().isAuthenticated();
useEffect(() => {
if (isAuthenticated) window.location.href = '/';
}, [isAuthenticated]);
diff --git a/packages/apps/feed-app/src/templates/SocialFeed/NavigateToReferencedPost.tsx b/packages/apps/feed-app/src/templates/SocialFeed/NavigateToReferencedPost.tsx
index 5ea8aae50..33b97aac3 100644
--- a/packages/apps/feed-app/src/templates/SocialFeed/NavigateToReferencedPost.tsx
+++ b/packages/apps/feed-app/src/templates/SocialFeed/NavigateToReferencedPost.tsx
@@ -2,7 +2,7 @@ import {
getPostQueryOptions,
NotFound,
useChannels,
- useDotYouClientContext,
+ useOdinClientContext,
} from '@homebase-id/common-app';
import { Loader } from '@homebase-id/common-app/icons';
import { HomebaseFile } from '@homebase-id/js-lib/core';
@@ -14,7 +14,7 @@ import { useNavigate, useParams } from 'react-router-dom';
export const NavigateToReferencedPost = () => {
const { postKey } = useParams();
const navigate = useNavigate();
- const identity = useDotYouClientContext().getHostIdentity();
+ const identity = useOdinClientContext().getHostIdentity();
const post = useReferencedPost(postKey);
useEffect(() => {
@@ -43,7 +43,7 @@ export const NavigateToReferencedPost = () => {
const useReferencedPost = (postKey: string | undefined) => {
const [post, setPost] = useState | null>(null);
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const queryClient = useQueryClient();
const { data: allChannels } = useChannels({ isOwner: true, isAuthenticated: true });
@@ -52,7 +52,7 @@ const useReferencedPost = (postKey: string | undefined) => {
allChannels?.forEach(async (channel) => {
const post = await queryClient.fetchQuery(
- getPostQueryOptions(dotYouClient, queryClient, true, undefined, channel, postKey)
+ getPostQueryOptions(odinClient, queryClient, true, undefined, channel, postKey)
);
if (post) {
setPost(post);
diff --git a/packages/apps/mail-app/src/app/App.tsx b/packages/apps/mail-app/src/app/App.tsx
index a85538425..8a6b9bb88 100644
--- a/packages/apps/mail-app/src/app/App.tsx
+++ b/packages/apps/mail-app/src/app/App.tsx
@@ -45,9 +45,9 @@ import {
ErrorBoundary,
NotFound,
OdinQueryClient,
- DotYouClientProvider,
+ OdinClientProvider,
MAIL_ROOT_PATH,
- useDotYouClientContext,
+ useOdinClientContext,
} from '@homebase-id/common-app';
import { useValidateAuthorization } from '../hooks/auth/useAuth';
@@ -121,7 +121,7 @@ function App() {
-
+
>}
@@ -129,7 +129,7 @@ function App() {
v7_startTransition: true,
}}
/>
-
+
);
@@ -139,7 +139,7 @@ const RootRoute = ({ children }: { children: ReactNode }) => {
useValidateAuthorization();
const location = useLocation();
- const isAuthenticated = useDotYouClientContext().isAuthenticated();
+ const isAuthenticated = useOdinClientContext().isAuthenticated();
if (!isAuthenticated) {
if (location.pathname === AUTH_PATH || location.pathname === AUTH_FINALIZE_PATH)
diff --git a/packages/apps/mail-app/src/components/Composer/MailComposer.tsx b/packages/apps/mail-app/src/components/Composer/MailComposer.tsx
index 802d3091b..93c449f3f 100644
--- a/packages/apps/mail-app/src/components/Composer/MailComposer.tsx
+++ b/packages/apps/mail-app/src/components/Composer/MailComposer.tsx
@@ -33,7 +33,7 @@ import {
MailDrive,
} from '../../providers/MailProvider';
import { RecipientInput } from './RecipientInput';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { RichTextEditor } from '@homebase-id/rich-text-editor';
import { useBlocker } from 'react-router-dom';
import { MediaOptions } from '@homebase-id/rich-text-editor/src/editor/ImagePlugin/ImagePlugin';
@@ -67,7 +67,7 @@ export const MailComposer = ({
const { data: mailSettings, isFetched: mailSettingsFetched } = useMailSettings().get;
const [expanded, setExpanded] = useState(!forwardedMailThread || !currentRecipients?.length);
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const [autosavedDsr, setAutosavedDsr] = useState<
NewHomebaseFile | HomebaseFile
>(
diff --git a/packages/apps/mail-app/src/components/Composer/RecipientInput.tsx b/packages/apps/mail-app/src/components/Composer/RecipientInput.tsx
index 43eaf50d8..1b838b2f9 100644
--- a/packages/apps/mail-app/src/components/Composer/RecipientInput.tsx
+++ b/packages/apps/mail-app/src/components/Composer/RecipientInput.tsx
@@ -1,6 +1,6 @@
import { useState, useCallback } from 'react';
-import { useAllContacts, ActionButton, useDotYouClientContext } from '@homebase-id/common-app';
+import { useAllContacts, ActionButton, useOdinClientContext } from '@homebase-id/common-app';
import { Times } from '@homebase-id/common-app/icons';
import { ContactFile } from '@homebase-id/js-lib/network';
@@ -19,7 +19,7 @@ export const RecipientInput = ({
const [selectedIndex, setSelectedIndex] = useState(0);
const [inputStateIndex, setInputStateIndex] = useState(0);
const [isFocused, setIsFocused] = useState(false);
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const ownContactFile: ContactFile = {
odinId: loggedOnIdentity,
diff --git a/packages/apps/mail-app/src/components/Thread/MailAttachmentPreview.tsx b/packages/apps/mail-app/src/components/Thread/MailAttachmentPreview.tsx
index 417a5fe88..8fcb07f24 100644
--- a/packages/apps/mail-app/src/components/Thread/MailAttachmentPreview.tsx
+++ b/packages/apps/mail-app/src/components/Thread/MailAttachmentPreview.tsx
@@ -7,7 +7,7 @@ import {
ActionButton,
bytesToSize,
ExtensionThumbnail,
- useDotYouClientContext,
+ useOdinClientContext,
useFile,
} from '@homebase-id/common-app';
import { OdinImage } from '@homebase-id/ui-lib';
@@ -21,7 +21,7 @@ export const MailAttachmentPreview = ({
messageId: string;
payloadKey: string;
}) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const { data: mailMessage, isLoading: mailMessageLoading } = useMailConversation({
messageFileId: messageId,
}).getMessage;
@@ -157,7 +157,7 @@ export const MailAttachmentPreview = ({
<>
{payloadDescriptor.contentType.startsWith('image/') ? (
{
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const lastConversation = mailThread[0];
const lastReceivedConversation = mailThread.find(
diff --git a/packages/apps/mail-app/src/components/Threads/MailThreads.tsx b/packages/apps/mail-app/src/components/Threads/MailThreads.tsx
index a945b57f7..cd6a7cde5 100644
--- a/packages/apps/mail-app/src/components/Threads/MailThreads.tsx
+++ b/packages/apps/mail-app/src/components/Threads/MailThreads.tsx
@@ -13,7 +13,7 @@ import { Archive, Download, Trash } from '@homebase-id/common-app/icons';
import { MailConversation } from '../../providers/MailProvider';
import { HomebaseFile } from '@homebase-id/js-lib/core';
import { useWindowVirtualizer } from '@tanstack/react-virtual';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { useMailThread } from '../../hooks/mail/useMailThread';
import { MailThreadsFilter, useFilteredMailThreads } from '../../hooks/mail/useFilteredMailThreads';
import { useMailConversation } from '../../hooks/mail/useMailConversation';
@@ -28,7 +28,7 @@ export const MailThreads = ({
}) => {
const [selection, setSelection] = useState[][]>([]);
const [isAllSelected, setIsAllSelected] = useState(false);
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
// Don't auto load next pages when there's a query
const autoPage = !query;
@@ -218,7 +218,7 @@ const MailConversationsHeader = ({
clearSelection: () => void;
filter?: MailThreadsFilter;
}) => {
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const hasASelection = selection.length > 0;
const {
mutate: removeThread,
diff --git a/packages/apps/mail-app/src/components/Threads/RecipientsList.tsx b/packages/apps/mail-app/src/components/Threads/RecipientsList.tsx
index b4a798189..b1068e934 100644
--- a/packages/apps/mail-app/src/components/Threads/RecipientsList.tsx
+++ b/packages/apps/mail-app/src/components/Threads/RecipientsList.tsx
@@ -1,7 +1,7 @@
import { t, ConnectionName } from '@homebase-id/common-app';
import { MailConversation, getAllRecipients } from '../../providers/MailProvider';
import { HomebaseFile } from '@homebase-id/js-lib/core';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import React from 'react';
export const RecipientsList = ({
@@ -9,7 +9,7 @@ export const RecipientsList = ({
}: {
mailThread: HomebaseFile[];
}) => {
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const allRecipients = getAllRecipients(mailThread[0]);
const anyReply = mailThread.some(
@@ -56,7 +56,7 @@ export const RecipientsList = ({
};
const InnerRecipients = ({ recipients }: { recipients: string[] }) => {
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
return recipients.map((recipient, index) => (
diff --git a/packages/apps/mail-app/src/hooks/auth/useAuth.ts b/packages/apps/mail-app/src/hooks/auth/useAuth.ts
index 1b334e7f6..7c804bf5c 100644
--- a/packages/apps/mail-app/src/hooks/auth/useAuth.ts
+++ b/packages/apps/mail-app/src/hooks/auth/useAuth.ts
@@ -26,7 +26,7 @@ import {
MAIL_APP_ID,
MAIL_ROOT_PATH,
OWNER_APPS_ROOT,
- useDotYouClient,
+ useOdinClient,
} from '@homebase-id/common-app';
import { useQueryClient } from '@tanstack/react-query';
@@ -36,7 +36,7 @@ const MailDrive: TargetDrive = {
};
export const useValidateAuthorization = () => {
- const { hasSharedSecret } = useDotYouClient();
+ const { hasSharedSecret } = useOdinClient();
const { data: hasValidToken, isFetched } = useVerifyToken();
useEffect(() => {
@@ -50,8 +50,8 @@ export const useValidateAuthorization = () => {
};
export const useAuth = () => {
- const { getDotYouClient } = useDotYouClient();
- const preauth = async (): Promise => await preauthApps(getDotYouClient());
+ const { getOdinClient } = useOdinClient();
+ const preauth = async (): Promise => await preauthApps(getOdinClient());
return {
preauth,
diff --git a/packages/apps/mail-app/src/hooks/auth/useVerifyToken.ts b/packages/apps/mail-app/src/hooks/auth/useVerifyToken.ts
index dca521a9b..161abdef7 100644
--- a/packages/apps/mail-app/src/hooks/auth/useVerifyToken.ts
+++ b/packages/apps/mail-app/src/hooks/auth/useVerifyToken.ts
@@ -1,16 +1,16 @@
import { QueryClient, useQuery } from '@tanstack/react-query';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { hasValidToken as hasValidYouAuthToken } from '@homebase-id/js-lib/auth';
const MINUTE_IN_MS = 60000;
export const useVerifyToken = () => {
- const dotYouClient = useDotYouClientContext();
- const isAuthenticated = dotYouClient.isAuthenticated();
+ const odinClient = useOdinClientContext();
+ const isAuthenticated = odinClient.isAuthenticated();
const fetchData = async () => {
// When hasValidYouAuthToken returns undefined, it means that it couldn't be checked.. so we assume it's valid, to avoid unnecessary logouts
- return (await hasValidYouAuthToken(dotYouClient)) ?? true;
+ return (await hasValidYouAuthToken(odinClient)) ?? true;
};
return useQuery({
queryKey: ['verify-mail-token'],
diff --git a/packages/apps/mail-app/src/hooks/mail/useFilteredMailThreads.ts b/packages/apps/mail-app/src/hooks/mail/useFilteredMailThreads.ts
index 664f9d9a6..81ef6168f 100644
--- a/packages/apps/mail-app/src/hooks/mail/useFilteredMailThreads.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useFilteredMailThreads.ts
@@ -8,7 +8,7 @@ import {
REMOVE_ARCHIVAL_STATUS,
MAIL_DRAFT_CONVERSATION_FILE_TYPE,
} from '../../providers/MailProvider';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { MAIL_CONVERSATIONS_PAGE_SIZE, useMailConversations } from './useMailConversations';
import fuzzysort from 'fuzzysort';
import { stringGuidsEqual } from '@homebase-id/js-lib/helpers';
@@ -16,7 +16,7 @@ import { stringGuidsEqual } from '@homebase-id/js-lib/helpers';
export type MailThreadsFilter = 'inbox' | 'sent' | 'drafts' | 'archive' | 'trash';
export const useFilteredMailThreads = (filter: MailThreadsFilter, query: string | undefined) => {
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const {
data: conversations,
hasNextPage: hasMorePosts,
@@ -108,38 +108,38 @@ export const useFilteredMailThreads = (filter: MailThreadsFilter, query: string
const today = new Date().getTime();
const searchResults = query
? fuzzysort
- .go(query, filteredConversations, {
- keys: [
- 'fileMetadata.appData.content.subject',
- 'fileMetadata.appData.content.plainMessage',
- 'fileMetadata.appData.content.plainAttachment',
- ],
- threshold: -10000,
- scoreFn: (a) => {
- // Less than 0 days old, no penalty
- const agePenalty = Math.abs(
- Math.round(
- (today -
- (a as unknown as { obj: HomebaseFile }).obj.fileMetadata
- .created) /
- (1000 * 60 * 60 * 24)
- )
- );
-
- // -100 to the plainMessage score makes it a worse match than a subject match
- return (
- Math.max(
- a[0] ? a[0].score : -Infinity,
- a[1] ? a[1].score - 100 : -Infinity,
- a[2] ? a[2].score - 50 : -Infinity
- ) - agePenalty
- );
- },
- })
- .map((result) => ({
- originId: result.obj.fileMetadata.appData.content.originId,
- threadId: result.obj.fileMetadata.appData.content.threadId,
- }))
+ .go(query, filteredConversations, {
+ keys: [
+ 'fileMetadata.appData.content.subject',
+ 'fileMetadata.appData.content.plainMessage',
+ 'fileMetadata.appData.content.plainAttachment',
+ ],
+ threshold: -10000,
+ scoreFn: (a) => {
+ // Less than 0 days old, no penalty
+ const agePenalty = Math.abs(
+ Math.round(
+ (today -
+ (a as unknown as { obj: HomebaseFile }).obj.fileMetadata
+ .created) /
+ (1000 * 60 * 60 * 24)
+ )
+ );
+
+ // -100 to the plainMessage score makes it a worse match than a subject match
+ return (
+ Math.max(
+ a[0] ? a[0].score : -Infinity,
+ a[1] ? a[1].score - 100 : -Infinity,
+ a[2] ? a[2].score - 50 : -Infinity
+ ) - agePenalty
+ );
+ },
+ })
+ .map((result) => ({
+ originId: result.obj.fileMetadata.appData.content.originId,
+ threadId: result.obj.fileMetadata.appData.content.threadId,
+ }))
: [];
// filter threadsDictionary by searchResults if there's a query
diff --git a/packages/apps/mail-app/src/hooks/mail/useLiveMailProcessor.ts b/packages/apps/mail-app/src/hooks/mail/useLiveMailProcessor.ts
index b22eeb2f1..a62a868f8 100644
--- a/packages/apps/mail-app/src/hooks/mail/useLiveMailProcessor.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useLiveMailProcessor.ts
@@ -1,5 +1,5 @@
import { InfiniteData, useQuery, useQueryClient } from '@tanstack/react-query';
-import { DotYouClient, TypedConnectionNotification } from '@homebase-id/js-lib/core';
+import { OdinClient, TypedConnectionNotification } from '@homebase-id/js-lib/core';
import { processInbox } from '@homebase-id/js-lib/peer';
@@ -7,7 +7,7 @@ import { useWebsocketSubscriber } from '@homebase-id/common-app';
import { useCallback } from 'react';
import { hasDebugFlag, stringGuidsEqual } from '@homebase-id/js-lib/helpers';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import {
MAIL_CONVERSATION_FILE_TYPE,
MailConversationsReturn,
@@ -29,11 +29,11 @@ export const useLiveMailProcessor = () => {
// Process the inbox on startup
const useInboxProcessor = (connected?: boolean) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const queryClient = useQueryClient();
const fetchData = async () => {
- const processedresult = await processInbox(dotYouClient, MailDrive, 2000);
+ const processedresult = await processInbox(odinClient, MailDrive, 2000);
// We don't know how many messages we have processed, so we can only invalidate the entire mail query
// TODO: Extend with a queryBatch + queryModified with a timestamp check to directly add the new messages into the cache
queryClient.invalidateQueries({ queryKey: ['mail-conversations'] });
@@ -52,10 +52,10 @@ const isDebug = hasDebugFlag();
const useMailWebsocket = (isEnabled: boolean) => {
const queryClient = useQueryClient();
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const handler = useCallback(
- async (_: DotYouClient, notification: TypedConnectionNotification) => {
+ async (_: OdinClient, notification: TypedConnectionNotification) => {
isDebug && console.debug('[MailWebsocket] Got notification', notification);
if (
@@ -67,7 +67,7 @@ const useMailWebsocket = (isEnabled: boolean) => {
// This skips the invalidation of all chat messages, as we only need to add/update this specific message
const updatedChatMessage = await dsrToMailConversation(
- dotYouClient,
+ odinClient,
notification.header,
MailDrive,
true
@@ -86,18 +86,18 @@ const useMailWebsocket = (isEnabled: boolean) => {
results: isNewFile
? index === 0
? [
- updatedChatMessage,
- ...page.results.filter(
- (existingMail) =>
- !stringGuidsEqual(existingMail.fileId, updatedChatMessage.fileId)
- ),
- ]
+ updatedChatMessage,
+ ...page.results.filter(
+ (existingMail) =>
+ !stringGuidsEqual(existingMail.fileId, updatedChatMessage.fileId)
+ ),
+ ]
: page.results
: page.results.map((msg) =>
- stringGuidsEqual(msg?.fileId, updatedChatMessage.fileId)
- ? updatedChatMessage
- : msg
- ),
+ stringGuidsEqual(msg?.fileId, updatedChatMessage.fileId)
+ ? updatedChatMessage
+ : msg
+ ),
})),
};
queryClient.setQueryData(['mail-conversations'], newConversations);
diff --git a/packages/apps/mail-app/src/hooks/mail/useMailConversation.ts b/packages/apps/mail-app/src/hooks/mail/useMailConversation.ts
index 426af7544..b8cb9f274 100644
--- a/packages/apps/mail-app/src/hooks/mail/useMailConversation.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useMailConversation.ts
@@ -1,5 +1,5 @@
import { InfiniteData, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
-import { t, useDotYouClientContext, useIntroductions } from '@homebase-id/common-app';
+import { t, useOdinClientContext, useIntroductions } from '@homebase-id/common-app';
import {
HomebaseFile,
NewHomebaseFile,
@@ -24,14 +24,14 @@ import {
export const useMailConversation = (props?: { messageFileId: string }) => {
const { messageFileId } = props || {};
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const queryClient = useQueryClient();
- const identity = dotYouClient.getHostIdentity();
+ const identity = odinClient.getHostIdentity();
const { mutateAsync: introduceRecipients } = useIntroductions().introduceIdentities;
const getMessage = async (messageFileId: string) =>
- await getMailConversation(dotYouClient, messageFileId);
+ await getMailConversation(odinClient, messageFileId);
const sendMessage = async ({
conversation,
@@ -72,8 +72,8 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
};
const uploadResult = newMailConversation.fileId
- ? await updateMail(dotYouClient, newMailConversation as HomebaseFile, files)
- : await uploadMail(dotYouClient, newMailConversation, files as NewMediaFile[]);
+ ? await updateMail(odinClient, newMailConversation as HomebaseFile, files)
+ : await uploadMail(odinClient, newMailConversation, files as NewMediaFile[]);
if (!uploadResult) throw new Error('Failed to send the mail message');
newMailConversation.fileId = uploadResult.file.fileId;
@@ -119,15 +119,15 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
},
};
return await updateMail(
- dotYouClient,
+ odinClient,
updatedConversation,
updatedConversation.fileMetadata.payloads,
async () => {
- const serverData = await getMailConversation(dotYouClient, conversation.fileId);
+ const serverData = await getMailConversation(odinClient, conversation.fileId);
if (!serverData) return;
updatedConversation.fileMetadata.versionTag = serverData.fileMetadata.versionTag;
return await updateMail(
- dotYouClient,
+ odinClient,
updatedConversation,
updatedConversation.fileMetadata.payloads
);
@@ -170,15 +170,15 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
},
};
return await updateMail(
- dotYouClient,
+ odinClient,
updatedConversation,
updatedConversation.fileMetadata.payloads,
async () => {
- const serverData = await getMailConversation(dotYouClient, conversation.fileId);
+ const serverData = await getMailConversation(odinClient, conversation.fileId);
if (!serverData) return;
updatedConversation.fileMetadata.versionTag = serverData.fileMetadata.versionTag;
await updateMail(
- dotYouClient,
+ odinClient,
updatedConversation,
updatedConversation.fileMetadata.payloads
);
@@ -215,11 +215,11 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
results:
index === 0
? [
- conversation as HomebaseFile,
- ...(existingConversations?.pages[0].results.filter(
- (item) => !stringGuidsEqual(item.fileId, conversation.fileId)
- ) || []),
- ]
+ conversation as HomebaseFile,
+ ...(existingConversations?.pages[0].results.filter(
+ (item) => !stringGuidsEqual(item.fileId, conversation.fileId)
+ ) || []),
+ ]
: page.results,
};
}),
@@ -256,18 +256,18 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
stringGuidsEqual(msg.fileId, conversation.fileId)
)
? {
- ...conversation,
- fileMetadata: {
- ...conversation.fileMetadata,
- appData: {
- ...conversation.fileMetadata.appData,
- content: {
- ...conversation.fileMetadata.appData.content,
- isRead: true,
- },
+ ...conversation,
+ fileMetadata: {
+ ...conversation.fileMetadata,
+ appData: {
+ ...conversation.fileMetadata.appData,
+ content: {
+ ...conversation.fileMetadata.appData.content,
+ isRead: true,
},
},
- }
+ },
+ }
: conversation;
}),
};
@@ -338,18 +338,18 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
stringGuidsEqual(msg.fileId, conversation.fileId)
)
? {
- ...conversation,
- fileMetadata: {
- ...conversation.fileMetadata,
- appData: {
- ...conversation.fileMetadata.appData,
- content: {
- ...conversation.fileMetadata.appData.content,
- isRead: false,
- },
+ ...conversation,
+ fileMetadata: {
+ ...conversation.fileMetadata,
+ appData: {
+ ...conversation.fileMetadata.appData,
+ content: {
+ ...conversation.fileMetadata.appData.content,
+ isRead: false,
},
},
- }
+ },
+ }
: conversation;
}),
};
@@ -405,7 +405,7 @@ export const useMailConversation = (props?: { messageFileId: string }) => {
};
export const useMailDraft = (props?: { draftFileId: string }) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const queryClient = useQueryClient();
const { draftFileId } = props || {};
@@ -446,8 +446,8 @@ export const useMailDraft = (props?: { draftFileId: string }) => {
};
const uploadResult = newMailConversation.fileId
- ? await updateMail(dotYouClient, newMailConversation as HomebaseFile, files)
- : await uploadMail(dotYouClient, newMailConversation, files as NewMediaFile[]);
+ ? await updateMail(odinClient, newMailConversation as HomebaseFile, files)
+ : await uploadMail(odinClient, newMailConversation, files as NewMediaFile[]);
if (!uploadResult) throw new Error('Failed to save the mail message draft');
@@ -459,10 +459,10 @@ export const useMailDraft = (props?: { draftFileId: string }) => {
return newMailConversation;
};
- const getDraft = async (fileId: string) => await getMailConversation(dotYouClient, fileId);
+ const getDraft = async (fileId: string) => await getMailConversation(odinClient, fileId);
const removeDraft = async (draftConversation: HomebaseFile) =>
- deleteFile(dotYouClient, MailDrive, draftConversation.fileId);
+ deleteFile(odinClient, MailDrive, draftConversation.fileId);
return {
getDraft: useQuery({
@@ -492,14 +492,14 @@ export const useMailDraft = (props?: { draftFileId: string }) => {
results:
index === 0 && !alreadyExisted
? [
- draftedConversation as HomebaseFile,
- ...(existingConversations?.pages[0].results || []),
- ]
+ draftedConversation as HomebaseFile,
+ ...(existingConversations?.pages[0].results || []),
+ ]
: page.results.map((result) => {
- return stringGuidsEqual(result.fileId, draftedConversation.fileId)
- ? (draftedConversation as HomebaseFile)
- : result;
- }),
+ return stringGuidsEqual(result.fileId, draftedConversation.fileId)
+ ? (draftedConversation as HomebaseFile)
+ : result;
+ }),
};
}),
],
diff --git a/packages/apps/mail-app/src/hooks/mail/useMailConversations.ts b/packages/apps/mail-app/src/hooks/mail/useMailConversations.ts
index 06f120c12..ee8a5eae1 100644
--- a/packages/apps/mail-app/src/hooks/mail/useMailConversations.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useMailConversations.ts
@@ -1,20 +1,20 @@
import { MailConversationsReturn, getMailConversations } from '../../providers/MailProvider';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { useInfiniteQuery, InfiniteData } from '@tanstack/react-query';
export const MAIL_CONVERSATIONS_PAGE_SIZE = 100;
export const useMailConversations = (
select?:
| ((
- data: InfiniteData
- ) => InfiniteData)
+ data: InfiniteData
+ ) => InfiniteData)
| undefined
) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const fetchMailConversations = async (cursorState: string | undefined) => {
return await getMailConversations(
- dotYouClient,
+ odinClient,
cursorState,
undefined,
MAIL_CONVERSATIONS_PAGE_SIZE
diff --git a/packages/apps/mail-app/src/hooks/mail/useMailSettings.ts b/packages/apps/mail-app/src/hooks/mail/useMailSettings.ts
index e694f4e2e..8edb9e79a 100644
--- a/packages/apps/mail-app/src/hooks/mail/useMailSettings.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useMailSettings.ts
@@ -5,20 +5,20 @@ import {
fetchMailSettings,
uploadMailSettings,
} from '../../providers/MailSettingsProvider';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
export const useMailSettings = () => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const queryClient = useQueryClient();
const getMailSettings = async () => {
- return await fetchMailSettings(dotYouClient);
+ return await fetchMailSettings(odinClient);
};
const saveMailSettings = async (
settings: HomebaseFile | NewHomebaseFile
) => {
- return await uploadMailSettings(dotYouClient, settings);
+ return await uploadMailSettings(odinClient, settings);
};
return {
diff --git a/packages/apps/mail-app/src/hooks/mail/useMailThread.ts b/packages/apps/mail-app/src/hooks/mail/useMailThread.ts
index 821976ffa..168bb39de 100644
--- a/packages/apps/mail-app/src/hooks/mail/useMailThread.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useMailThread.ts
@@ -9,7 +9,7 @@ import {
REMOVE_ARCHIVAL_STATUS,
updateMail,
} from '../../providers/MailProvider';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { InfiniteData, useMutation, useQueryClient } from '@tanstack/react-query';
import { stringGuidsEqual } from '@homebase-id/js-lib/helpers';
import { useMailConversations } from './useMailConversations';
@@ -17,18 +17,18 @@ import { useMailConversations } from './useMailConversations';
export const useMailThread = (props?: { threadId: string | undefined }) => {
const { threadId } = props || {};
const queryClient = useQueryClient();
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const removeMailThread = async (mailThread: HomebaseFile[]) => {
return await Promise.all(
mailThread.map((message) => {
if (message.fileMetadata.appData.fileType === MAIL_DRAFT_CONVERSATION_FILE_TYPE) {
- return deleteFile(dotYouClient, MailDrive, message.fileId);
+ return deleteFile(odinClient, MailDrive, message.fileId);
}
const updatedMailMessage = { ...message };
updatedMailMessage.fileMetadata.appData.archivalStatus = REMOVE_ARCHIVAL_STATUS;
- return updateMail(dotYouClient, message, message.fileMetadata.payloads);
+ return updateMail(odinClient, message, message.fileMetadata.payloads);
})
);
};
@@ -38,7 +38,7 @@ export const useMailThread = (props?: { threadId: string | undefined }) => {
mailThread.map((message) => {
const updatedMailMessage = { ...message };
updatedMailMessage.fileMetadata.appData.archivalStatus = ARCHIVE_ARCHIVAL_STATUS;
- return updateMail(dotYouClient, message, message.fileMetadata.payloads);
+ return updateMail(odinClient, message, message.fileMetadata.payloads);
})
);
};
@@ -48,7 +48,7 @@ export const useMailThread = (props?: { threadId: string | undefined }) => {
mailThread.map((message) => {
const updatedMailMessage = { ...message };
updatedMailMessage.fileMetadata.appData.archivalStatus = DEFAULT_ARCHIVAL_STATUS;
- return updateMail(dotYouClient, message, message.fileMetadata.payloads);
+ return updateMail(odinClient, message, message.fileMetadata.payloads);
})
);
};
@@ -87,15 +87,15 @@ export const useMailThread = (props?: { threadId: string | undefined }) => {
stringGuidsEqual(msg.fileId, conversation.fileId)
)
? {
- ...conversation,
- fileMetadata: {
- ...conversation.fileMetadata,
- appData: {
- ...conversation.fileMetadata.appData,
- archivalStatus: REMOVE_ARCHIVAL_STATUS,
- },
+ ...conversation,
+ fileMetadata: {
+ ...conversation.fileMetadata,
+ appData: {
+ ...conversation.fileMetadata.appData,
+ archivalStatus: REMOVE_ARCHIVAL_STATUS,
},
- }
+ },
+ }
: conversation;
}),
};
@@ -133,15 +133,15 @@ export const useMailThread = (props?: { threadId: string | undefined }) => {
stringGuidsEqual(msg.fileId, conversation.fileId)
)
? {
- ...conversation,
- fileMetadata: {
- ...conversation.fileMetadata,
- appData: {
- ...conversation.fileMetadata.appData,
- archivalStatus: ARCHIVE_ARCHIVAL_STATUS,
- },
+ ...conversation,
+ fileMetadata: {
+ ...conversation.fileMetadata,
+ appData: {
+ ...conversation.fileMetadata.appData,
+ archivalStatus: ARCHIVE_ARCHIVAL_STATUS,
},
- }
+ },
+ }
: conversation;
}),
};
@@ -184,15 +184,15 @@ export const useMailThread = (props?: { threadId: string | undefined }) => {
stringGuidsEqual(msg.fileId, conversation.fileId)
)
? {
- ...conversation,
- fileMetadata: {
- ...conversation.fileMetadata,
- appData: {
- ...conversation.fileMetadata.appData,
- archivalStatus: DEFAULT_ARCHIVAL_STATUS,
- },
+ ...conversation,
+ fileMetadata: {
+ ...conversation.fileMetadata,
+ appData: {
+ ...conversation.fileMetadata.appData,
+ archivalStatus: DEFAULT_ARCHIVAL_STATUS,
},
- }
+ },
+ }
: conversation;
}),
};
diff --git a/packages/apps/mail-app/src/hooks/mail/useMarkMailConversationsAsRead.ts b/packages/apps/mail-app/src/hooks/mail/useMarkMailConversationsAsRead.ts
index ca1300cf8..8a1c72e29 100644
--- a/packages/apps/mail-app/src/hooks/mail/useMarkMailConversationsAsRead.ts
+++ b/packages/apps/mail-app/src/hooks/mail/useMarkMailConversationsAsRead.ts
@@ -2,7 +2,7 @@ import { HomebaseFile } from '@homebase-id/js-lib/core';
import { MailConversation } from '../../providers/MailProvider';
import { useEffect, useMemo, useRef } from 'react';
import { useMailConversation } from './useMailConversation';
-import { useDotYouClient } from '@homebase-id/common-app';
+import { useOdinClient } from '@homebase-id/common-app';
export const useMarkMailConversationsAsRead = ({
mailThread,
@@ -11,7 +11,7 @@ export const useMarkMailConversationsAsRead = ({
}) => {
// We really want this to only run once
const isProcessing = useRef(false);
- const identity = useDotYouClient().getDotYouClient().getLoggedInIdentity();
+ const identity = useOdinClient().getOdinClient().getLoggedInIdentity();
const { mutateAsync: markAsRead } = useMailConversation().markAsRead;
const unreadMessages = useMemo(
diff --git a/packages/apps/mail-app/src/providers/DebugDataProvider.ts b/packages/apps/mail-app/src/providers/DebugDataProvider.ts
index 9bbd88f2d..e34c3fff4 100644
--- a/packages/apps/mail-app/src/providers/DebugDataProvider.ts
+++ b/packages/apps/mail-app/src/providers/DebugDataProvider.ts
@@ -1,5 +1,5 @@
import {
- DotYouClient,
+ OdinClient,
HomebaseFile,
NewHomebaseFile,
SecurityGroupType,
@@ -95,7 +95,7 @@ export const getFunName = () => {
return `${rando(adjectives)} ${rando(adjectives)} ${rando(nouns)}`;
};
-const sendOne = async (dotYouClient: DotYouClient, threadId: string, recipients: string[]) => {
+const sendOne = async (odinClient: OdinClient, threadId: string, recipients: string[]) => {
const uniqueId = getNewId();
const originId = getNewId();
@@ -107,7 +107,7 @@ const sendOne = async (dotYouClient: DotYouClient, threadId: string, recipients:
fileType: MAIL_CONVERSATION_FILE_TYPE,
content: {
subject: getFunName(),
- sender: dotYouClient.getHostIdentity(),
+ sender: odinClient.getHostIdentity(),
message: [
{
type: 'p',
@@ -133,12 +133,12 @@ const sendOne = async (dotYouClient: DotYouClient, threadId: string, recipients:
},
};
- await uploadMail(dotYouClient, newMailConversation, undefined);
+ await uploadMail(odinClient, newMailConversation, undefined);
};
-export const MakeConversation = async (dotYouClient: DotYouClient) => {
+export const MakeConversation = async (odinClient: OdinClient) => {
const connections = (
- await getConnections(dotYouClient, {
+ await getConnections(odinClient, {
cursor: undefined,
count: 5,
})
@@ -147,13 +147,13 @@ export const MakeConversation = async (dotYouClient: DotYouClient) => {
for (let i = 0; i < 25; i++) {
const threadId = getNewId();
- await sendOne(dotYouClient, threadId, recipients);
+ await sendOne(odinClient, threadId, recipients);
}
};
const PAGE_SIZE = 100;
-export const BePolite = async (dotYouClient: DotYouClient) => {
- const allThreads = await getMailConversations(dotYouClient, undefined, undefined, PAGE_SIZE);
+export const BePolite = async (odinClient: OdinClient) => {
+ const allThreads = await getMailConversations(odinClient, undefined, undefined, PAGE_SIZE);
// Group the flattenedConversations by their groupId
const threadsDictionary = allThreads.results.reduce(
@@ -172,8 +172,8 @@ export const BePolite = async (dotYouClient: DotYouClient) => {
for (let i = 0; i < threads.length; i++) {
const thread = threads[i][0];
if (!thread) continue;
- const recipients = getAllRecipients(thread, dotYouClient.getHostIdentity());
+ const recipients = getAllRecipients(thread, odinClient.getHostIdentity());
- await sendOne(dotYouClient, thread.fileMetadata.appData.content.threadId, recipients);
+ await sendOne(odinClient, thread.fileMetadata.appData.content.threadId, recipients);
}
};
diff --git a/packages/apps/mail-app/src/providers/MailProvider.ts b/packages/apps/mail-app/src/providers/MailProvider.ts
index efb3e01dc..e134c1d7c 100644
--- a/packages/apps/mail-app/src/providers/MailProvider.ts
+++ b/packages/apps/mail-app/src/providers/MailProvider.ts
@@ -1,6 +1,6 @@
import {
CursoredResult,
- DotYouClient,
+ OdinClient,
HomebaseFile,
FileQueryParams,
GetBatchQueryResultOptions,
@@ -91,7 +91,7 @@ export const MailDrive: TargetDrive = {
export type MailConversationsReturn = CursoredResult[]>;
export const getMailConversations = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
cursorState: string | undefined,
threadId: string | undefined,
pageSize: number
@@ -109,34 +109,34 @@ export const getMailConversations = async (
includeTransferHistory: true,
};
- const response = await queryBatch(dotYouClient, params, ro);
+ const response = await queryBatch(odinClient, params, ro);
return {
cursorState: response.cursorState,
results: (await Promise.all(
response.searchResults
- .map(async (result) => await dsrToMailConversation(dotYouClient, result, MailDrive, true))
+ .map(async (result) => await dsrToMailConversation(odinClient, result, MailDrive, true))
.filter(Boolean)
)) as HomebaseFile[],
};
};
-export const getMailConversation = async (dotYouClient: DotYouClient, fileId: string) => {
- const header = await getFileHeader(dotYouClient, MailDrive, fileId, {
+export const getMailConversation = async (odinClient: OdinClient, fileId: string) => {
+ const header = await getFileHeader(odinClient, MailDrive, fileId, {
decrypt: false,
});
if (!header) return null;
- return await dsrToMailConversation(dotYouClient, header, MailDrive, true);
+ return await dsrToMailConversation(odinClient, header, MailDrive, true);
};
export const uploadMail = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
conversation: NewHomebaseFile,
newMediaFiles: NewMediaFile[] | undefined,
onVersionConflict?: () => void
) => {
- const identity = dotYouClient.getHostIdentity();
+ const identity = odinClient.getHostIdentity();
const recipients = conversation.fileMetadata.appData.content.recipients.filter(
(recipient) => recipient !== identity
);
@@ -149,7 +149,7 @@ export const uploadMail = async (
const encryptedKeyHeader = conversation.sharedSecretEncryptedKeyHeader || GenerateKeyHeader();
const decryptedKeyHeader = encryptedKeyHeader
- ? await decryptKeyHeader(dotYouClient, encryptedKeyHeader)
+ ? await decryptKeyHeader(odinClient, encryptedKeyHeader)
: undefined;
const aesKey = decryptedKeyHeader?.aesKey || getRandom16ByteArray();
@@ -217,7 +217,7 @@ export const uploadMail = async (
}
const uploadResult = await uploadFile(
- dotYouClient,
+ odinClient,
uploadInstructions,
uploadMetadata,
payloads,
@@ -247,7 +247,7 @@ export const uploadMail = async (
conversation.fileMetadata.appData.content.deliveryStatus = MailDeliveryStatus.Failed;
await updateMail(
- dotYouClient,
+ odinClient,
conversation as HomebaseFile,
payloads.map((pyld) => {
return {
@@ -270,12 +270,12 @@ export const uploadMail = async (
};
export const updateMail = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
conversation: HomebaseFile,
existingAndNewMediaFiles?: (NewMediaFile | MediaFile)[],
onVersionConflict?: () => void
) => {
- const identity = dotYouClient.getHostIdentity();
+ const identity = odinClient.getHostIdentity();
const recipients = conversation.fileMetadata.appData.content.recipients.filter(
(recipient) => recipient !== identity
);
@@ -347,7 +347,7 @@ export const updateMail = async (
// decrypt keyheader;
const decryptedKeyHeader = encryptedKeyHeader
- ? await decryptKeyHeader(dotYouClient, encryptedKeyHeader)
+ ? await decryptKeyHeader(odinClient, encryptedKeyHeader)
: undefined;
const { payloads: newMediaPayloads, thumbnails: newMediaThumbnails } =
@@ -374,7 +374,7 @@ export const updateMail = async (
}
const patchResult = await patchFile(
- dotYouClient,
+ odinClient,
conversation.sharedSecretEncryptedKeyHeader,
uploadInstructions,
uploadMetadata,
@@ -398,14 +398,14 @@ export const updateMail = async (
};
export const dsrToMailConversation = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
dsr: HomebaseFile,
targetDrive: TargetDrive,
includeMetadataHeader: boolean
): Promise | null> => {
try {
const mailContent = await getContentFromHeaderOrPayload(
- dotYouClient,
+ odinClient,
targetDrive,
dsr,
includeMetadataHeader
diff --git a/packages/apps/mail-app/src/providers/MailSettingsProvider.ts b/packages/apps/mail-app/src/providers/MailSettingsProvider.ts
index ff6ec5e7e..90a58a01f 100644
--- a/packages/apps/mail-app/src/providers/MailSettingsProvider.ts
+++ b/packages/apps/mail-app/src/providers/MailSettingsProvider.ts
@@ -1,5 +1,5 @@
import {
- DotYouClient,
+ OdinClient,
HomebaseFile,
NewHomebaseFile,
RichText,
@@ -21,10 +21,10 @@ export interface MailSettings {
export const mailSettingsUniqueId = toGuidId('mail-settings');
export const fetchMailSettings = async (
- dotYouClient: DotYouClient
+ odinClient: OdinClient
): Promise | null> => {
const fileHeader = await getFileHeaderByUniqueId(
- dotYouClient,
+ odinClient,
MailDrive,
mailSettingsUniqueId
);
@@ -37,7 +37,7 @@ export const fetchMailSettings = async (
};
export const uploadMailSettings = async (
- dotYouClient: DotYouClient,
+ odinClient: OdinClient,
settings: HomebaseFile | NewHomebaseFile
): Promise => {
if (!stringGuidsEqual(settings.fileMetadata.appData.uniqueId, mailSettingsUniqueId)) {
@@ -67,7 +67,7 @@ export const uploadMailSettings = async (
},
};
- const uploadResult = await uploadFile(dotYouClient, uploadInstructions, uploadMetadata);
+ const uploadResult = await uploadFile(odinClient, uploadInstructions, uploadMetadata);
if (!uploadResult) {
throw new Error('Failed to save mail settings');
}
diff --git a/packages/apps/mail-app/src/templates/Auth/Auth.tsx b/packages/apps/mail-app/src/templates/Auth/Auth.tsx
index aad84f48d..3821940ca 100644
--- a/packages/apps/mail-app/src/templates/Auth/Auth.tsx
+++ b/packages/apps/mail-app/src/templates/Auth/Auth.tsx
@@ -5,7 +5,7 @@ import {
DialogWrapper,
Alert,
t,
- useDotYouClientContext,
+ useOdinClientContext,
OWNER_APPS_ROOT,
} from '@homebase-id/common-app';
import { AutoAuthorize, LoginBox } from '../../components/Auth/LoginBox/LoginBox';
@@ -17,7 +17,7 @@ const Auth = () => {
const [searchParams] = useSearchParams();
const isError = searchParams.get('state') === 'finalize-error';
- const isAuthenticated = useDotYouClientContext().isAuthenticated();
+ const isAuthenticated = useOdinClientContext().isAuthenticated();
useEffect(() => {
if (isAuthenticated) window.location.href = '/';
diff --git a/packages/apps/mail-app/src/templates/Mail/DebugData.tsx b/packages/apps/mail-app/src/templates/Mail/DebugData.tsx
index d62897bc9..dc721a10f 100644
--- a/packages/apps/mail-app/src/templates/Mail/DebugData.tsx
+++ b/packages/apps/mail-app/src/templates/Mail/DebugData.tsx
@@ -1,14 +1,14 @@
import { ActionButton } from '@homebase-id/common-app';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { BePolite, MakeConversation } from '../../providers/DebugDataProvider';
export const DebugDataPage = () => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
return (
{
- await MakeConversation(dotYouClient);
+ await MakeConversation(odinClient);
alert('done!');
}}
>
@@ -16,7 +16,7 @@ export const DebugDataPage = () => {
{
- await BePolite(dotYouClient);
+ await BePolite(odinClient);
alert('done!');
}}
>
diff --git a/packages/apps/mail-app/src/templates/Mail/MailAttachmentOverview.tsx b/packages/apps/mail-app/src/templates/Mail/MailAttachmentOverview.tsx
index 985ecd15f..2dad137b1 100644
--- a/packages/apps/mail-app/src/templates/Mail/MailAttachmentOverview.tsx
+++ b/packages/apps/mail-app/src/templates/Mail/MailAttachmentOverview.tsx
@@ -6,7 +6,7 @@ import {
} from '@homebase-id/common-app';
import { PayloadDescriptor } from '@homebase-id/js-lib/core';
import { OdinPreviewImage } from '@homebase-id/ui-lib';
-import { useDotYouClientContext } from '@homebase-id/common-app';
+import { useOdinClientContext } from '@homebase-id/common-app';
import { MailDrive } from '../../providers/MailProvider';
import { useNavigate, useParams } from 'react-router-dom';
@@ -61,7 +61,7 @@ export const AttachmentFile = ({
query?: string | null;
children?: React.ReactNode;
}) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const navigate = useNavigate();
const { filter } = useParams();
@@ -85,7 +85,7 @@ export const AttachmentFile = ({
>
{file.contentType.startsWith('image/') ? (
void;
}) => {
- const dotYouClient = useDotYouClientContext();
+ const odinClient = useOdinClientContext();
const hasMultiple = files.length > 1;
@@ -117,7 +117,7 @@ const FileGroup = ({
>
{firstFile.contentType.startsWith('image/') ? (
{
- const dotYouClient = useDotYouClientContext();
- const identity = dotYouClient.getHostIdentity();
+ const odinClient = useOdinClientContext();
+ const identity = odinClient.getHostIdentity();
const navigate = useNavigate();
const { filter } = useParams();
const fileName =
@@ -175,7 +175,7 @@ export const AttachmentFile = ({ file }: { file: ExtendedFile }) => {
>
{file.contentType.startsWith('image/') ? (
[] | undefined;
}) => {
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const filteredMailThread = mailThread?.filter(
(conv) => !getAllRecipients(conv).some((recipient) => recipient === loggedOnIdentity)
);
@@ -361,7 +361,7 @@ const ConversationalAwareness = ({
message: HomebaseFile;
query: string | undefined | null;
}) => {
- const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
+ const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const lastSender =
message.fileMetadata.senderOdinId || message.fileMetadata.appData.content.sender;
diff --git a/packages/apps/mail-app/src/templates/Mail/MailThread.tsx b/packages/apps/mail-app/src/templates/Mail/MailThread.tsx
index e18c60645..68b259ab1 100644
--- a/packages/apps/mail-app/src/templates/Mail/MailThread.tsx
+++ b/packages/apps/mail-app/src/templates/Mail/MailThread.tsx
@@ -2,7 +2,7 @@ import { useEffect, useMemo, useState, useRef } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { MailHomeHeader } from '../../components/Header/Header';
import { useMailThread } from '../../hooks/mail/useMailThread';
-import { ApiType, DotYouClient, HomebaseFile } from '@homebase-id/js-lib/core';
+import { ApiType, OdinClient, HomebaseFile } from '@homebase-id/js-lib/core';
import {
ARCHIVE_ARCHIVAL_STATUS,
MailConversation,
@@ -19,7 +19,7 @@ import {
highlightQuery,
MAIL_ROOT_PATH,
t,
- useDotYouClientContext,
+ useOdinClientContext,
useIsConnected,
} from '@homebase-id/common-app';
import { MailHistory } from './MailHistory';
@@ -42,7 +42,7 @@ export const MailThread = () => {
const scrollRef = useRef