favorite folders followup (#8570)
Something changed, which affected the Favorite folder picker checkbox styles -- fixed it! Cleaned up code in `CurrentWorkspaceMemberFavoritesFolders` - removed redundant filtering since favorites are already filtered in `usePrefetchedFavoritesData`. Regarding issue #8569 - I am not sure what to do in this case. Since Folders data is gated by a feature flag, we can't use it in `CurrentWorkspaceMemberFavoritesFolders` to ensure the favorite section renders with empty folders. Currently, the section only appears when at least one favorite exists - may be leave this section open at all times or fix this bug after removal of the feature flag? --------- Co-authored-by: Nitin Koche <nitinkoche@Nitins-MacBook-Pro.local> Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -4,7 +4,6 @@ import { NavigationDrawerAnimatedCollapseWrapper } from '@/ui/navigation/navigat
|
||||
import { NavigationDrawerSection } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerSection';
|
||||
import { NavigationDrawerSectionTitle } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle';
|
||||
import { useNavigationSection } from '@/ui/navigation/navigation-drawer/hooks/useNavigationSection';
|
||||
import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper';
|
||||
import styled from '@emotion/styled';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
@ -78,19 +77,15 @@ export const NavigationDrawerSectionForObjectMetadataItems = ({
|
||||
onClick={() => toggleNavigationSection()}
|
||||
/>
|
||||
</NavigationDrawerAnimatedCollapseWrapper>
|
||||
<ScrollWrapper contextProviderName="navigationDrawer">
|
||||
<StyledObjectsMetaDataItemsWrapper>
|
||||
{isNavigationSectionOpen &&
|
||||
objectMetadataItemsForNavigationItems.map(
|
||||
(objectMetadataItem) => (
|
||||
<NavigationDrawerItemForObjectMetadataItem
|
||||
key={`navigation-drawer-item-${objectMetadataItem.id}`}
|
||||
objectMetadataItem={objectMetadataItem}
|
||||
/>
|
||||
),
|
||||
)}
|
||||
</StyledObjectsMetaDataItemsWrapper>
|
||||
</ScrollWrapper>
|
||||
<StyledObjectsMetaDataItemsWrapper>
|
||||
{isNavigationSectionOpen &&
|
||||
objectMetadataItemsForNavigationItems.map((objectMetadataItem) => (
|
||||
<NavigationDrawerItemForObjectMetadataItem
|
||||
key={`navigation-drawer-item-${objectMetadataItem.id}`}
|
||||
objectMetadataItem={objectMetadataItem}
|
||||
/>
|
||||
))}
|
||||
</StyledObjectsMetaDataItemsWrapper>
|
||||
</NavigationDrawerSection>
|
||||
)
|
||||
);
|
||||
|
||||
@ -7,16 +7,12 @@ import { NavigationDrawerSectionForObjectMetadataItemsSkeletonLoader } from '@/o
|
||||
import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems';
|
||||
import { useIsPrefetchLoading } from '@/prefetch/hooks/useIsPrefetchLoading';
|
||||
|
||||
export const NavigationDrawerSectionForObjectMetadataItemsWrapper = ({
|
||||
isRemote,
|
||||
}: {
|
||||
isRemote: boolean;
|
||||
}) => {
|
||||
export const RemoteNavigationDrawerSection = () => {
|
||||
const currentUser = useRecoilValue(currentUserState);
|
||||
|
||||
const { activeObjectMetadataItems } = useFilteredObjectMetadataItems();
|
||||
const filteredActiveObjectMetadataItems = activeObjectMetadataItems.filter(
|
||||
(item) => (isRemote ? item.isRemote : !item.isRemote),
|
||||
(item) => item.isRemote,
|
||||
);
|
||||
const loading = useIsPrefetchLoading();
|
||||
|
||||
@ -26,9 +22,9 @@ export const NavigationDrawerSectionForObjectMetadataItemsWrapper = ({
|
||||
|
||||
return (
|
||||
<NavigationDrawerSectionForObjectMetadataItems
|
||||
sectionTitle={isRemote ? 'Remote' : 'Workspace'}
|
||||
sectionTitle={'Remote'}
|
||||
objectMetadataItems={filteredActiveObjectMetadataItems}
|
||||
isRemote={isRemote}
|
||||
isRemote={true}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@ -1,44 +0,0 @@
|
||||
import { Meta, StoryObj } from '@storybook/react';
|
||||
|
||||
import { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
|
||||
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
||||
import { IconsProviderDecorator } from '~/testing/decorators/IconsProviderDecorator';
|
||||
import { ObjectMetadataItemsDecorator } from '~/testing/decorators/ObjectMetadataItemsDecorator';
|
||||
import { SnackBarDecorator } from '~/testing/decorators/SnackBarDecorator';
|
||||
import { graphqlMocks } from '~/testing/graphqlMocks';
|
||||
|
||||
import { NavigationDrawerSectionForObjectMetadataItemsWrapper } from '@/object-metadata/components/NavigationDrawerSectionForObjectMetadataItemsWrapper';
|
||||
import { within } from '@storybook/test';
|
||||
import { PrefetchLoadedDecorator } from '~/testing/decorators/PrefetchLoadedDecorator';
|
||||
|
||||
const meta: Meta<typeof NavigationDrawerSectionForObjectMetadataItemsWrapper> =
|
||||
{
|
||||
title:
|
||||
'Modules/ObjectMetadata/NavigationDrawerSectionForObjectMetadataItemsWrapper',
|
||||
component: NavigationDrawerSectionForObjectMetadataItemsWrapper,
|
||||
decorators: [
|
||||
IconsProviderDecorator,
|
||||
ObjectMetadataItemsDecorator,
|
||||
ComponentWithRouterDecorator,
|
||||
ComponentWithRecoilScopeDecorator,
|
||||
SnackBarDecorator,
|
||||
PrefetchLoadedDecorator,
|
||||
],
|
||||
parameters: {
|
||||
msw: graphqlMocks,
|
||||
},
|
||||
};
|
||||
|
||||
export default meta;
|
||||
type Story = StoryObj<
|
||||
typeof NavigationDrawerSectionForObjectMetadataItemsWrapper
|
||||
>;
|
||||
|
||||
export const Default: Story = {
|
||||
play: async ({ canvasElement }) => {
|
||||
const canvas = within(canvasElement);
|
||||
await canvas.findByText('People', undefined, { timeout: 10000 });
|
||||
await canvas.findByText('Companies');
|
||||
await canvas.findByText('Opportunities');
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user