[ENG-1772] Fix sidebar issues (#2452)

fix sidebar issues
This commit is contained in:
nikec 2024-05-03 14:18:56 +02:00 committed by GitHub
parent e83e84e278
commit 39840b21bf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 28 additions and 7 deletions

View file

@ -254,7 +254,7 @@ export const QuickPreview = () => {
<Dialog.Portal forceMount> <Dialog.Portal forceMount>
<Dialog.Overlay <Dialog.Overlay
className={clsx( className={clsx(
'absolute inset-0 z-50', 'absolute inset-0 z-[100]',
'radix-state-open:animate-in radix-state-open:fade-in-0', 'radix-state-open:animate-in radix-state-open:fade-in-0',
isDark ? 'bg-black/80' : 'bg-black/60' isDark ? 'bg-black/80' : 'bg-black/60'
)} )}
@ -262,7 +262,7 @@ export const QuickPreview = () => {
/> />
<Dialog.Content <Dialog.Content
className="fixed inset-[5%] z-50 outline-none radix-state-open:animate-in radix-state-open:fade-in-0 radix-state-open:zoom-in-95" className="fixed inset-[5%] z-[100] outline-none radix-state-open:animate-in radix-state-open:fade-in-0 radix-state-open:zoom-in-95"
onOpenAutoFocus={(e) => e.preventDefault()} onOpenAutoFocus={(e) => e.preventDefault()}
onEscapeKeyDown={(e) => isRenaming && e.preventDefault()} onEscapeKeyDown={(e) => isRenaming && e.preventDefault()}
onContextMenu={(e) => e.preventDefault()} onContextMenu={(e) => e.preventDefault()}

View file

@ -9,6 +9,8 @@ import { openDirectoryPickerDialog } from '~/app/$libraryId/settings/library/loc
import { useLocale } from '~/hooks'; import { useLocale } from '~/hooks';
import { usePlatform } from '~/util/Platform'; import { usePlatform } from '~/util/Platform';
import { useSidebarContext } from '../../SidebarLayout/Context';
export const ContextMenu = ({ export const ContextMenu = ({
children, children,
locationId locationId
@ -17,10 +19,16 @@ export const ContextMenu = ({
const platform = usePlatform(); const platform = usePlatform();
const libraryId = useLibraryContext().library.uuid; const libraryId = useLibraryContext().library.uuid;
const sidebar = useSidebarContext();
const { t } = useLocale(); const { t } = useLocale();
return ( return (
<CM.Root trigger={children}> <CM.Root
trigger={children}
onOpenChange={(open) => sidebar.onLockedChange(open)}
className="z-[100]"
>
<CM.Item <CM.Item
onClick={async () => { onClick={async () => {
try { try {

View file

@ -7,13 +7,21 @@ import CreateDialog from '~/app/$libraryId/settings/library/tags/CreateDialog';
import DeleteDialog from '~/app/$libraryId/settings/library/tags/DeleteDialog'; import DeleteDialog from '~/app/$libraryId/settings/library/tags/DeleteDialog';
import { useLocale } from '~/hooks'; import { useLocale } from '~/hooks';
import { useSidebarContext } from '../../SidebarLayout/Context';
export const ContextMenu = ({ children, tagId }: PropsWithChildren<{ tagId: number }>) => { export const ContextMenu = ({ children, tagId }: PropsWithChildren<{ tagId: number }>) => {
const navigate = useNavigate(); const navigate = useNavigate();
const sidebar = useSidebarContext();
const { t } = useLocale(); const { t } = useLocale();
return ( return (
<CM.Root trigger={children}> <CM.Root
trigger={children}
onOpenChange={(open) => sidebar.onLockedChange(open)}
className="z-[100]"
>
<CM.Item <CM.Item
icon={Plus} icon={Plus}
label={t('new_tag')} label={t('new_tag')}

View file

@ -1,6 +1,5 @@
import { import {
Books, Books,
ChartBar,
Cloud, Cloud,
Database, Database,
FlyingSaucer, FlyingSaucer,
@ -15,6 +14,7 @@ import {
TagSimple, TagSimple,
User User
} from '@phosphor-icons/react'; } from '@phosphor-icons/react';
import clsx from 'clsx';
import { useFeatureFlag } from '@sd/client'; import { useFeatureFlag } from '@sd/client';
import { tw } from '@sd/ui'; import { tw } from '@sd/ui';
import { useLocale, useOperatingSystem } from '~/hooks'; import { useLocale, useOperatingSystem } from '~/hooks';
@ -22,14 +22,16 @@ import { usePlatform } from '~/util/Platform';
import Icon from '../Layout/Sidebar/SidebarLayout/Icon'; import Icon from '../Layout/Sidebar/SidebarLayout/Icon';
import SidebarLink from '../Layout/Sidebar/SidebarLayout/Link'; import SidebarLink from '../Layout/Sidebar/SidebarLayout/Link';
import { useLayoutStore } from '../Layout/store';
import { NavigationButtons } from '../TopBar/NavigationButtons'; import { NavigationButtons } from '../TopBar/NavigationButtons';
const Heading = tw.div`mb-1 ml-1 text-xs font-semibold text-gray-400`; const Heading = tw.div`mb-1 ml-1 text-xs font-semibold text-gray-400`;
const Section = tw.div`space-y-0.5`; const Section = tw.div`space-y-0.5`;
export default () => { export default () => {
const { platform } = usePlatform();
const os = useOperatingSystem(); const os = useOperatingSystem();
const { platform } = usePlatform();
const { sidebar } = useLayoutStore();
// const isPairingEnabled = useFeatureFlag('p2pPairing'); // const isPairingEnabled = useFeatureFlag('p2pPairing');
const isBackupsEnabled = useFeatureFlag('backups'); const isBackupsEnabled = useFeatureFlag('backups');
@ -41,7 +43,10 @@ export default () => {
{platform === 'tauri' ? ( {platform === 'tauri' ? (
<div <div
data-tauri-drag-region={os === 'macOS'} data-tauri-drag-region={os === 'macOS'}
className="mb-3 h-3 w-full p-3 pl-[14px] pt-[11px]" className={clsx(
'mb-3 flex h-3 w-full p-3 pl-[14px] pt-[11px]',
sidebar.collapsed && os === 'macOS' && 'justify-end'
)}
> >
<NavigationButtons /> <NavigationButtons />
</div> </div>