### What problem does this PR solve? Fix: Place the invitation reminder icon in a separate file #9634 Fix: After receiving the agent message, pull the agent data to highlight the edges passed #9538 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
28 lines
931 B
TypeScript
28 lines
931 B
TypeScript
import { Button } from '@/components/ui/button';
|
|
import { useNavigateWithFromState } from '@/hooks/route-hook';
|
|
import { useListTenant } from '@/hooks/use-user-setting-request';
|
|
import { TenantRole } from '@/pages/user-setting/constants';
|
|
import { BellRing } from 'lucide-react';
|
|
import { useCallback, useMemo } from 'react';
|
|
|
|
export function BellButton() {
|
|
const { data } = useListTenant();
|
|
const navigate = useNavigateWithFromState();
|
|
|
|
const showBell = useMemo(() => {
|
|
return data.some((x) => x.role === TenantRole.Invite);
|
|
}, [data]);
|
|
|
|
const handleBellClick = useCallback(() => {
|
|
navigate('/user-setting/team');
|
|
}, [navigate]);
|
|
|
|
return showBell ? (
|
|
<Button variant={'ghost'} onClick={handleBellClick}>
|
|
<div className="relative">
|
|
<BellRing className="size-4 " />
|
|
<span className="absolute size-1 rounded -right-1 -top-1 bg-red-600"></span>
|
|
</div>
|
|
</Button>
|
|
) : null;
|
|
}
|