mirror of
https://github.com/ahmadk953/tasko.git
synced 2025-05-04 04:33:10 +00:00
Updated Liveblocks Config and Added Liveblocks test Pages (Non-Functional)
This commit is contained in:
parent
a44563748d
commit
b1ab232900
6 changed files with 117 additions and 86 deletions
|
@ -1,51 +1,22 @@
|
|||
import { createClient } from '@liveblocks/client';
|
||||
import { createRoomContext } from '@liveblocks/react';
|
||||
|
||||
import { createClient } from "@liveblocks/client";
|
||||
import { createRoomContext, createLiveblocksContext } from "@liveblocks/react";
|
||||
|
||||
const client = createClient({
|
||||
// publicApiKey: process.env.LIVEBLOCKS_PUBLIC_DEV_API_KEY!,
|
||||
authEndpoint: '/api/liveblocks-auth',
|
||||
// throttle: 100,
|
||||
publicApiKey: process.env.NEXT_PUBLIC_LIVEBLOCKS_PUBLIC_KEY!,
|
||||
throttle: 16,
|
||||
});
|
||||
|
||||
// Presence represents the properties that exist on every user in the Room
|
||||
// and that will automatically be kept in sync. Accessible through the
|
||||
// `user.presence` property. Must be JSON-serializable.
|
||||
type Presence = {
|
||||
// cursor: { x: number, y: number } | null,
|
||||
// ...
|
||||
cursor: { x: number; y: number } | null;
|
||||
};
|
||||
|
||||
// Optionally, Storage represents the shared document that persists in the
|
||||
// Room, even after all users leave. Fields under Storage typically are
|
||||
// LiveList, LiveMap, LiveObject instances, for which updates are
|
||||
// automatically persisted and synced to all connected clients.
|
||||
type Storage = {
|
||||
// author: LiveObject<{ firstName: string, lastName: string }>,
|
||||
// ...
|
||||
};
|
||||
type Storage = {};
|
||||
|
||||
// Optionally, UserMeta represents static/readonly metadata on each user, as
|
||||
// provided by your own custom auth back end (if used). Useful for data that
|
||||
// will not change during a session, like a user's name or avatar.
|
||||
type UserMeta = {
|
||||
id?: string; // Accessible through `user.id`
|
||||
// info?: Json, // Accessible through `user.info`
|
||||
};
|
||||
type UserMeta = {};
|
||||
|
||||
// Optionally, the type of custom events broadcast and listened to in this
|
||||
// room. Use a union for multiple events. Must be JSON-serializable.
|
||||
type RoomEvent = {
|
||||
// type: "NOTIFICATION",
|
||||
// ...
|
||||
};
|
||||
type RoomEvent = {};
|
||||
|
||||
// Optionally, when using Comments, ThreadMetadata represents metadata on
|
||||
// each thread. Can only contain booleans, strings, and numbers.
|
||||
export type ThreadMetadata = {
|
||||
// resolved: boolean;
|
||||
// quote: string;
|
||||
// time: number;
|
||||
};
|
||||
export type ThreadMetadata = {};
|
||||
|
||||
export const {
|
||||
suspense: {
|
||||
|
@ -56,15 +27,13 @@ export const {
|
|||
useSelf,
|
||||
useOthers,
|
||||
useOthersMapped,
|
||||
useOthersListener,
|
||||
useOthersConnectionIds,
|
||||
useOther,
|
||||
useBroadcastEvent,
|
||||
useEventListener,
|
||||
useErrorListener,
|
||||
useStorage,
|
||||
useObject,
|
||||
useMap,
|
||||
useList,
|
||||
useBatch,
|
||||
useHistory,
|
||||
useUndo,
|
||||
|
@ -75,7 +44,6 @@ export const {
|
|||
useStatus,
|
||||
useLostConnectionListener,
|
||||
useThreads,
|
||||
useUser,
|
||||
useCreateThread,
|
||||
useEditThreadMetadata,
|
||||
useCreateComment,
|
||||
|
@ -83,45 +51,21 @@ export const {
|
|||
useDeleteComment,
|
||||
useAddReaction,
|
||||
useRemoveReaction,
|
||||
},
|
||||
} = createRoomContext<Presence, Storage, UserMeta, RoomEvent, ThreadMetadata>(
|
||||
client,
|
||||
{
|
||||
async resolveUsers({ userIds }) {
|
||||
// Used only for Comments. Return a list of user information retrieved
|
||||
// from `userIds`. This info is used in comments, mentions etc.
|
||||
|
||||
// const usersData = await __fetchUsersFromDB__(userIds);
|
||||
//
|
||||
// return usersData.map((userData) => ({
|
||||
// name: userData.name,
|
||||
// avatar: userData.avatar.src,
|
||||
// }));
|
||||
|
||||
return [];
|
||||
},
|
||||
async resolveMentionSuggestions({ text, roomId }) {
|
||||
// Used only for Comments. Return a list of userIds that match `text`.
|
||||
// These userIds are used to create a mention list when typing in the
|
||||
// composer.
|
||||
//
|
||||
// For example when you type "@jo", `text` will be `"jo"`, and
|
||||
// you should to return an array with John and Joanna's userIds:
|
||||
// ["john@example.com", "joanna@example.com"]
|
||||
|
||||
// const userIds = await __fetchAllUserIdsFromDB__(roomId);
|
||||
//
|
||||
// Return all userIds if no `text`
|
||||
// if (!text) {
|
||||
// return userIds;
|
||||
// }
|
||||
//
|
||||
// Otherwise, filter userIds for the search `text` and return
|
||||
// return userIds.filter((userId) =>
|
||||
// userId.toLowerCase().includes(text.toLowerCase())
|
||||
// );
|
||||
|
||||
return [];
|
||||
},
|
||||
useThreadSubscription,
|
||||
useMarkThreadAsRead,
|
||||
useRoomNotificationSettings,
|
||||
useUpdateRoomNotificationSettings,
|
||||
}
|
||||
);
|
||||
} = createRoomContext<Presence, Storage, UserMeta, RoomEvent, ThreadMetadata>(client);
|
||||
|
||||
export const {
|
||||
suspense: {
|
||||
LiveblocksProvider,
|
||||
useMarkInboxNotificationAsRead,
|
||||
useMarkAllInboxNotificationsAsRead,
|
||||
useInboxNotifications,
|
||||
useUnreadInboxNotificationsCount,
|
||||
useUser,
|
||||
useRoomInfo,
|
||||
}
|
||||
} = createLiveblocksContext<UserMeta, ThreadMetadata>(client);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue