mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
17f83d6458
* dev: change layout * chore: replace workspace slug and project id with anchor * chore: migration fixes * chore: update filtering logic * chore: endpoint changes * chore: update endpoint * chore: changed url pratterns * chore: use client side for layout and page * chore: issue vote changes * chore: project deploy board response change * refactor: publish project store and components * fix: update layout options after fetching settings * chore: remove unnecessary types * style: peek overview * refactor: components folder structure * fix: redirect from old path * chore: make the whole issue block clickable * chore: removed the migration file * chore: add server side redirection for old routes * chore: is enabled key change * chore: update types * chore: removed the migration file --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import { useRef, useEffect } from "react";
|
|
import useSWR from "swr";
|
|
// types
|
|
import { IUser } from "@plane/types";
|
|
// services
|
|
import { UserService } from "@/services/user.service";
|
|
|
|
export const useMention = () => {
|
|
const userService = new UserService();
|
|
const { data: user, isLoading: userDataLoading } = useSWR("currentUser", async () => userService.currentUser());
|
|
|
|
const userRef = useRef<IUser | undefined>();
|
|
|
|
useEffect(() => {
|
|
if (userRef) {
|
|
userRef.current = user;
|
|
}
|
|
}, [user]);
|
|
|
|
const waitForUserDate = async () =>
|
|
new Promise<IUser>((resolve) => {
|
|
const checkData = () => {
|
|
if (userRef.current) {
|
|
resolve(userRef.current);
|
|
} else {
|
|
setTimeout(checkData, 100);
|
|
}
|
|
};
|
|
checkData();
|
|
});
|
|
|
|
const mentionHighlights = async () => {
|
|
if (!userDataLoading && userRef.current) {
|
|
return [userRef.current.id];
|
|
} else {
|
|
const user = await waitForUserDate();
|
|
return [user.id];
|
|
}
|
|
};
|
|
|
|
return {
|
|
mentionHighlights,
|
|
};
|
|
};
|