Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ To use the libraries in your project, you can install them directly from GitHub
- [JS-Lib](https://github.com/homebase-id/odin-js/pkgs/npm/js-lib)
- [UI-Lib](https://github.com/homebase-id/odin-js/pkgs/npm/ui-lib)

#### Prerequisite: DotYouClient
#### Prerequisite: OdinClient

The libraries depend on a **DotYouClient** instance, which manages authentication parameters for API requests. Ensure you configure the `DotYouClient` correctly to interact with your Homebase Identity backend.
The libraries depend on a **OdinClient** instance, which manages authentication parameters for API requests. Ensure you configure the `OdinClient` correctly to interact with your Homebase Identity backend.

### Running the Apps Locally

Expand Down
16 changes: 0 additions & 16 deletions docs/js-lib/core/DotYouClient.md

This file was deleted.

16 changes: 16 additions & 0 deletions docs/js-lib/core/OdinClient.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# OdinClient

Before you can interact with any data on a Homebase Identity you need a instance of a `OdinClient`. Based on the authorization level different underlying api endpoints will be called, and different authorization keys will be expected. With the `OdinClient` you pass alongs these properties as a single strongly-typed object.

```
const headers = {
bx0900 = BASE64_APP_AUTH_TOKEN;
};

new OdinClient({
sharedSecret: BASE64_APP_SHAREDSECRET,
api: ApiType.App,
identity: `frodo.dotyou.cloud`,
headers: headers,
});
```
8 changes: 4 additions & 4 deletions docs/ui-lib/index.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Odin Image

Before you can interact with any data on a Homebase Identity you need a instance of a `DotYouClient`. Based on the authorization level different underlying api endpoints will be called, and different authorization keys will be expected. With the `DotYouClient` you pass alongs these properties as a single strongly-typed object.
Before you can interact with any data on a Homebase Identity you need a instance of a `OdinClient`. Based on the authorization level different underlying api endpoints will be called, and different authorization keys will be expected. With the `OdinClient` you pass alongs these properties as a single strongly-typed object.

Look at the [DotYouClient documentation](https://github.com/YouFoundation/dotyoucore-js/blob/main/docs/js-lib/core/DotYouClient.md) for more info.
Look at the [OdinClient documentation](https://github.com/YouFoundation/dotyoucore-js/blob/main/docs/js-lib/core/OdinClient.md) for more info.

```
<OdinImage
dotYouClient={dotYouClient}
odinClient={odinClient}
fileId={fileId}
fileKey={payloadKey}
lastModified={lastModified}
Expand All @@ -19,7 +19,7 @@ Look at the [DotYouClient documentation](https://github.com/YouFoundation/dotyou

```
<OdinVideo
dotYouClient={dotYouClient}
odinClient={odinClient}
fileId={fileId}
fileKey={payloadKey}
targetDrive={targetDrive}
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions packages/apps/chat-app/src/app/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ const AUTH_FINALIZE_PATH = CHAT_ROOT_PATH + '/auth/finalize';
import {
ErrorBoundary,
NotFound,
DotYouClientProvider,
OdinClientProvider,
CHAT_ROOT_PATH,
useDotYouClientContext,
useOdinClientContext,
} from '@homebase-id/common-app';
import { OdinQueryClient } from '@homebase-id/common-app';
import { useValidateAuthorization } from '../hooks/auth/useAuth';
Expand Down Expand Up @@ -106,15 +106,15 @@ function App() {
<meta name="v" content={import.meta.env.VITE_VERSION} />
</Helmet>
<OdinQueryClient app="app" type="indexeddb">
<DotYouClientProvider>
<OdinClientProvider>
<RouterProvider
router={router}
fallbackElement={<></>}
future={{
v7_startTransition: true,
}}
/>
</DotYouClientProvider>
</OdinClientProvider>
</OdinQueryClient>
</HelmetProvider>
);
Expand All @@ -123,7 +123,7 @@ function App() {
const RootRoute = ({ children }: { children: ReactNode }) => {
useValidateAuthorization();

const isAuthenticated = useDotYouClientContext().isAuthenticated();
const isAuthenticated = useOdinClientContext().isAuthenticated();
const location = useLocation();

if (!isAuthenticated) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { Helmet } from 'react-helmet-async';
import { useQuery } from '@tanstack/react-query';
import { useEffect } from 'react';
import { MinimalLayout } from '../../ui/Layout/Layout';
import { ApiType, DotYouClient } from '@homebase-id/js-lib/core';
import { ApiType, OdinClient } from '@homebase-id/js-lib/core';

const AUTHORIZE_PATH = '/api/owner/v1/youauth/authorize';

Expand All @@ -35,7 +35,7 @@ export const LoginBox = () => {
const isAutoAuthorize = window.location.pathname.startsWith(OWNER_APPS_ROOT);

useEffect(() => {
const host = new DotYouClient({
const host = new OdinClient({
hostIdentity: window.location.hostname,
api: ApiType.Guest,
}).getRoot();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Lol } from '@homebase-id/common-app/icons';
import {
ReactionsBar,
t,
useDotYouClientContext,
useOdinClientContext,
useMostSpace,
useOutsideTrigger,
} from '@homebase-id/common-app';
Expand All @@ -19,7 +19,7 @@ export const ChatReactionComposer = ({
conversation: HomebaseFile<UnifiedConversation, ConversationMetadata>;
msg: HomebaseFile<ChatMessage>;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const [isReact, setIsReact] = useState(false);
const wrapperRef = useRef<HTMLDivElement>(null);
useOutsideTrigger(wrapperRef, () => setIsReact(false));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useDotYouClientContext, ConnectionImage, OwnerImage } from '@homebase-id/common-app';
import { useOdinClientContext, ConnectionImage, OwnerImage } from '@homebase-id/common-app';
import { Persons } from '@homebase-id/common-app/icons';
import { HomebaseFile } from '@homebase-id/js-lib/core';
import { OdinImage } from '@homebase-id/ui-lib';
Expand All @@ -17,8 +17,8 @@ export const ConversationAvatar = ({
conversation: HomebaseFile<UnifiedConversation, ConversationMetadata>;
sizeClassName?: string;
}) => {
const dotYouClient = useDotYouClientContext();
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const odinClient = useOdinClientContext();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
if (!loggedOnIdentity) return null;

const conversationContent = conversation.fileMetadata.appData.content;
Expand All @@ -38,7 +38,7 @@ export const ConversationAvatar = ({
{payload ? (
<OdinImage
fileId={conversation.fileId}
dotYouClient={dotYouClient}
odinClient={odinClient}
fileKey={payload.key}
targetDrive={ChatDrive}
fit="cover"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
OwnerName,
LoadingBlock,
getPlainTextFromRichText,
useDotYouClientContext,
useOdinClientContext,
ActionGroup,
CHAT_ROOT_PATH,
ErrorNotification,
Expand Down Expand Up @@ -137,7 +137,7 @@ const ConversationBody = ({
title: string | ReactNode | undefined;
conversationId?: string;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const { data: conversationMetadata } = useConversationMetadata({ conversationId }).single;
const { data: conversation } = useConversation({ conversationId }).single;
const { data, isFetched: fetchedMessages } = useChatMessages({ conversationId }).all;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useDotYouClientContext } from '@homebase-id/common-app';
import { useOdinClientContext } from '@homebase-id/common-app';
import { HomebaseFile } from '@homebase-id/js-lib/core';
import {
ConversationMetadata,
Expand All @@ -15,7 +15,7 @@ export const ConversationListItem = ({
onClick: () => void;
isActive: boolean;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const recipients = conversation.fileMetadata.appData.content.recipients.filter(
(recipient) => recipient !== loggedOnIdentity
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useDotYouClientContext, ConnectionName, OwnerName, t } from '@homebase-id/common-app';
import { useOdinClientContext, ConnectionName, OwnerName, t } from '@homebase-id/common-app';
import { House } from '@homebase-id/common-app/icons';
import { HomebaseFile, DotYouClient, ApiType } from '@homebase-id/js-lib/core';
import { HomebaseFile, OdinClient, ApiType } from '@homebase-id/js-lib/core';
import {
UnifiedConversation,
ConversationMetadata,
Expand All @@ -16,7 +16,7 @@ export const ConversationTitle = ({
sizeClassName?: string;
includeLink?: boolean;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
if (!loggedOnIdentity) return null;

const conversationContent = conversation.fileMetadata.appData.content;
Expand All @@ -36,7 +36,7 @@ export const ConversationTitle = ({
<small className="flex flex-row gap-2 text-sm">
<House className="h-5 w-5" />
<a
href={new DotYouClient({
href={new OdinClient({
hostIdentity: recipient,
api: ApiType.Guest,
}).getRoot()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
Label,
NotFound,
t,
useDotYouClientContext,
useOdinClientContext,
useIntroductions,
useRawImage,
} from '@homebase-id/common-app';
Expand All @@ -24,7 +24,7 @@ import { GroupContactSearch } from './ConversationGroupFIelds';
import { ChatDrive, CONVERSATION_IMAGE_KEY } from '../../../../providers/ConversationProvider';

export const EditConversationGroup = () => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const { conversationKey } = useParams();
const {
single: { data: conversation, isFetched: isConversationFetched },
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { t, useDotYouClientContext } from '@homebase-id/common-app';
import { t, useOdinClientContext } from '@homebase-id/common-app';
import { Clock, SubtleCheck, Times } from '@homebase-id/common-app/icons';
import { HomebaseFile, RecipientTransferHistory, TransferStatus } from '@homebase-id/js-lib/core';
import { ChatMessage, ChatDeliveryStatus } from '../../../providers/ChatProvider';
Expand All @@ -10,7 +10,7 @@ export const ChatDeliveryIndicator = ({
msg: HomebaseFile<ChatMessage>;
className?: string;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const content = msg.fileMetadata.appData.content;
const authorOdinId = msg.fileMetadata.senderOdinId || '';
const messageFromMe = !authorOdinId || authorOdinId === loggedOnIdentity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { createPortal } from 'react-dom';
import { ApiType, DotYouClient, HomebaseFile } from '@homebase-id/js-lib/core';
import { ApiType, OdinClient, HomebaseFile } from '@homebase-id/js-lib/core';
import {
ActionLink,
CHAT_ROOT_PATH,
ConnectionImage,
ConnectionName,
DialogWrapper,
t,
useDotYouClientContext,
useOdinClientContext,
usePortal,
} from '@homebase-id/common-app';
import { ConversationMetadata, UnifiedConversation } from '../../../providers/ConversationProvider';
Expand All @@ -25,7 +25,7 @@ export const ChatInfo = ({
}) => {
const target = usePortal('modal-container');

const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
if (!loggedOnIdentity) return null;
const conversationContent = conversation.fileMetadata.appData.content;
const recipients = conversationContent.recipients.filter(
Expand Down Expand Up @@ -67,7 +67,7 @@ export const ChatInfo = ({
<div className="flex flex-col gap-4">
{recipients.map((recipient) => (
<a
href={`${new DotYouClient({ hostIdentity: loggedOnIdentity, api: ApiType.Guest }).getRoot()}/owner/connections/${recipient}`}
href={`${new OdinClient({ hostIdentity: loggedOnIdentity, api: ApiType.Guest }).getRoot()}/owner/connections/${recipient}`}
rel="noreferrer noopener"
target="_blank"
className="group flex flex-row items-center gap-3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
DialogWrapper,
OWNER_ROOT,
t,
useDotYouClientContext,
useOdinClientContext,
usePortal,
useTransferHistory,
} from '@homebase-id/common-app';
Expand All @@ -29,7 +29,7 @@ export const ChatMessageInfo = ({
conversation: HomebaseFile<UnifiedConversation, ConversationMetadata>;
onClose: () => void;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const target = usePortal('modal-container');
const conversationContent = conversation.fileMetadata.appData.content;
const recipients = conversationContent.recipients.filter(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
useDarkMode,
RichTextRenderer,
getPlainTextFromRichText,
useDotYouClientContext,
useOdinClientContext,
} from '@homebase-id/common-app';
import { DEFAULT_PAYLOAD_KEY, HomebaseFile, RichText } from '@homebase-id/js-lib/core';
import { stringGuidsEqual } from '@homebase-id/js-lib/helpers';
Expand All @@ -32,7 +32,7 @@ export const ChatMessageItem = ({
conversation?: HomebaseFile<UnifiedConversation, ConversationMetadata>;
chatActions?: ChatActions;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const authorOdinId = msg.fileMetadata.senderOdinId || '';

const messageFromMe = !authorOdinId || authorOdinId === loggedOnIdentity;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
t,
ActionGroup,
ErrorNotification,
useDotYouClientContext,
useOdinClientContext,
} from '@homebase-id/common-app';
import { ChevronDown } from '@homebase-id/common-app/icons';
import { HomebaseFile } from '@homebase-id/js-lib/core';
Expand Down Expand Up @@ -42,7 +42,7 @@ export const ContextMenu = ({
const { isStarred } = useChatToggleMessageStar({ msg });
const { mutate: resend, error: resendError } = useChatMessage().update;

const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const authorOdinId = msg.fileMetadata.senderOdinId;

const messageFromMe = !authorOdinId || authorOdinId === loggedOnIdentity;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
ExtensionThumbnail,
getPlainTextFromRichText,
t,
useDotYouClientContext,
useOdinClientContext,
} from '@homebase-id/common-app';
import { HomebaseFile } from '@homebase-id/js-lib/core';
import { useChatMessage } from '../../../hooks/chat/useChatMessage';
Expand Down Expand Up @@ -32,7 +32,7 @@ export const EmbeddedMessage = ({
msg: HomebaseFile<ChatMessage> | undefined;
className?: string;
}) => {
const loggedOnIdentity = useDotYouClientContext().getLoggedInIdentity();
const loggedOnIdentity = useOdinClientContext().getLoggedInIdentity();
const hasMedia = msg && !!msg.fileMetadata.payloads?.length;
const plainText = msg && getPlainTextFromRichText(msg.fileMetadata.appData.content.message);
return (
Expand Down Expand Up @@ -68,14 +68,14 @@ export const EmbeddedMessageMedia = ({
msg: HomebaseFile<ChatMessage>;
className?: string;
}) => {
const dotYouClient = useDotYouClientContext();
const odinClient = useOdinClientContext();
const firstPayload = msg.fileMetadata.payloads?.[0];
if (!firstPayload) return null;

if (firstPayload.contentType.includes('image/')) {
return (
<OdinImage
dotYouClient={dotYouClient}
odinClient={odinClient}
fileId={msg.fileId}
fileKey={firstPayload.key}
lastModified={firstPayload.lastModified || msg.fileMetadata.updated}
Expand Down
Loading