mirror of
https://github.com/Mail-0/Zero.git
synced 2026-06-30 07:46:15 +00:00
bitch
This commit is contained in:
@@ -34,9 +34,10 @@ interface LabelAction {
|
||||
interface LabelSidebarContextMenuProps {
|
||||
children: ReactNode;
|
||||
labelId: string;
|
||||
hide?: boolean;
|
||||
}
|
||||
|
||||
export function LabelSidebarContextMenu({ children, labelId }: LabelSidebarContextMenuProps) {
|
||||
export function LabelSidebarContextMenu({ children, labelId, hide }: LabelSidebarContextMenuProps) {
|
||||
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
||||
const t = useTranslations();
|
||||
const trpc = useTRPC();
|
||||
@@ -54,6 +55,8 @@ export function LabelSidebarContextMenu({ children, labelId }: LabelSidebarConte
|
||||
});
|
||||
};
|
||||
|
||||
if (hide) return children;
|
||||
|
||||
return (
|
||||
<>
|
||||
<ContextMenu modal={false}>
|
||||
|
||||
@@ -436,7 +436,11 @@ export function NavMain({ items }: NavMainProps) {
|
||||
const isMicrosoftAccount = activeAccount?.providerId === 'microsoft';
|
||||
if (isMicrosoftAccount) {
|
||||
return data?.map((label) => (
|
||||
<RecursiveFolder key={label.id} label={label} />
|
||||
<RecursiveFolder
|
||||
key={label.id}
|
||||
label={label}
|
||||
activeAccount={activeAccount}
|
||||
/>
|
||||
));
|
||||
}
|
||||
|
||||
@@ -475,7 +479,11 @@ export function NavMain({ items }: NavMainProps) {
|
||||
})),
|
||||
};
|
||||
components.push(
|
||||
<RecursiveFolder key={groupFolder.id} label={groupFolder} />,
|
||||
<RecursiveFolder
|
||||
key={groupFolder.id}
|
||||
label={groupFolder}
|
||||
activeAccount={activeAccount}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
|
||||
@@ -489,6 +497,7 @@ export function NavMain({ items }: NavMainProps) {
|
||||
name: label.name,
|
||||
originalLabel: label,
|
||||
}}
|
||||
activeAccount={activeAccount}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
@@ -505,7 +514,11 @@ export function NavMain({ items }: NavMainProps) {
|
||||
})),
|
||||
};
|
||||
components.push(
|
||||
<RecursiveFolder key={bracketsFolder.id} label={bracketsFolder} />,
|
||||
<RecursiveFolder
|
||||
key={bracketsFolder.id}
|
||||
label={bracketsFolder}
|
||||
activeAccount={activeAccount}
|
||||
/>,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useActiveConnection, useConnections } from '@/hooks/use-connections';
|
||||
import { LabelSidebarContextMenu } from '../context/label-sidebar-context';
|
||||
import { useSearchValue } from '@/hooks/use-search-value';
|
||||
import { useSidebar } from '../context/sidebar-context';
|
||||
import type { Label as LabelType } from '@/types';
|
||||
@@ -7,7 +8,7 @@ import { useNavigate } from 'react-router';
|
||||
import { useCallback } from 'react';
|
||||
import * as React from 'react';
|
||||
|
||||
export const RecursiveFolder = ({ label }: { label: any }) => {
|
||||
export const RecursiveFolder = ({ label, activeAccount }: { label: any; activeAccount?: any }) => {
|
||||
const [searchValue, setSearchValue] = useSearchValue();
|
||||
const isActive = searchValue.value.includes(`label:${label.name}`);
|
||||
const isFolderActive = isActive || window.location.pathname.includes(`/mail/label/${label.id}`);
|
||||
@@ -39,11 +40,6 @@ export const RecursiveFolder = ({ label }: { label: any }) => {
|
||||
[searchValue, setSearchValue],
|
||||
);
|
||||
|
||||
const activeAccount = React.useMemo(() => {
|
||||
if (!activeConnection?.id || !connections?.connections) return null;
|
||||
return connections.connections.find((connection) => connection.id === activeConnection?.id);
|
||||
}, [activeConnection?.id, connections?.connections]);
|
||||
|
||||
const handleFolderClick = useCallback(
|
||||
(id: string) => {
|
||||
if (!activeAccount) return;
|
||||
@@ -70,17 +66,23 @@ export const RecursiveFolder = ({ label }: { label: any }) => {
|
||||
const hasChildren = label.labels && label.labels.length > 0;
|
||||
|
||||
return (
|
||||
<Folder
|
||||
element={label.name}
|
||||
value={label.id}
|
||||
<LabelSidebarContextMenu
|
||||
labelId={label.id}
|
||||
key={label.id}
|
||||
hasChildren={hasChildren}
|
||||
onFolderClick={handleFolderClick}
|
||||
isSelect={isFolderActive}
|
||||
hide={activeAccount?.providerId === 'microsoft' || hasChildren}
|
||||
>
|
||||
{label.labels?.map((childLabel: any) => (
|
||||
<RecursiveFolder key={childLabel.id} label={childLabel} />
|
||||
))}
|
||||
</Folder>
|
||||
<Folder
|
||||
element={label.name}
|
||||
value={label.id}
|
||||
key={label.id}
|
||||
hasChildren={hasChildren}
|
||||
onFolderClick={handleFolderClick}
|
||||
isSelect={isFolderActive}
|
||||
>
|
||||
{label.labels?.map((childLabel: any) => (
|
||||
<RecursiveFolder key={childLabel.id} label={childLabel} />
|
||||
))}
|
||||
</Folder>
|
||||
</LabelSidebarContextMenu>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user