|
|
@ -15,7 +15,7 @@ import {
|
|
|
|
} from '@heroicons/react/24/outline';
|
|
|
|
} from '@heroicons/react/24/outline';
|
|
|
|
import Link from 'next/link';
|
|
|
|
import Link from 'next/link';
|
|
|
|
import { useRouter } from 'next/router';
|
|
|
|
import { useRouter } from 'next/router';
|
|
|
|
import { Fragment, useRef } from 'react';
|
|
|
|
import { Fragment, useEffect, useRef } from 'react';
|
|
|
|
import { defineMessages, useIntl } from 'react-intl';
|
|
|
|
import { defineMessages, useIntl } from 'react-intl';
|
|
|
|
|
|
|
|
|
|
|
|
export const menuMessages = defineMessages({
|
|
|
|
export const menuMessages = defineMessages({
|
|
|
@ -33,6 +33,8 @@ interface SidebarProps {
|
|
|
|
setClosed: () => void;
|
|
|
|
setClosed: () => void;
|
|
|
|
pendingRequestsCount: number;
|
|
|
|
pendingRequestsCount: number;
|
|
|
|
openIssuesCount: number;
|
|
|
|
openIssuesCount: number;
|
|
|
|
|
|
|
|
revalidateIssueCount: () => void;
|
|
|
|
|
|
|
|
revalidateRequestsCount: () => void;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
interface SidebarLinkProps {
|
|
|
|
interface SidebarLinkProps {
|
|
|
@ -106,6 +108,8 @@ const Sidebar = ({
|
|
|
|
setClosed,
|
|
|
|
setClosed,
|
|
|
|
pendingRequestsCount,
|
|
|
|
pendingRequestsCount,
|
|
|
|
openIssuesCount,
|
|
|
|
openIssuesCount,
|
|
|
|
|
|
|
|
revalidateIssueCount,
|
|
|
|
|
|
|
|
revalidateRequestsCount,
|
|
|
|
}: SidebarProps) => {
|
|
|
|
}: SidebarProps) => {
|
|
|
|
const navRef = useRef<HTMLDivElement>(null);
|
|
|
|
const navRef = useRef<HTMLDivElement>(null);
|
|
|
|
const router = useRouter();
|
|
|
|
const router = useRouter();
|
|
|
@ -113,6 +117,21 @@ const Sidebar = ({
|
|
|
|
const { hasPermission } = useUser();
|
|
|
|
const { hasPermission } = useUser();
|
|
|
|
useClickOutside(navRef, () => setClosed());
|
|
|
|
useClickOutside(navRef, () => setClosed());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
|
|
if (openIssuesCount) {
|
|
|
|
|
|
|
|
revalidateIssueCount();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (pendingRequestsCount) {
|
|
|
|
|
|
|
|
revalidateRequestsCount();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, [
|
|
|
|
|
|
|
|
revalidateIssueCount,
|
|
|
|
|
|
|
|
revalidateRequestsCount,
|
|
|
|
|
|
|
|
pendingRequestsCount,
|
|
|
|
|
|
|
|
openIssuesCount,
|
|
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<>
|
|
|
|
<div className="lg:hidden">
|
|
|
|
<div className="lg:hidden">
|
|
|
|