-
+ {!isMobile && }
{children}
{displayVersion && (
diff --git a/front/src/modules/ui/navigation/navbar/components/SupportChat.tsx b/front/src/modules/ui/navigation/navigation-drawer/components/SupportChat.tsx
similarity index 100%
rename from front/src/modules/ui/navigation/navbar/components/SupportChat.tsx
rename to front/src/modules/ui/navigation/navigation-drawer/components/SupportChat.tsx
diff --git a/front/src/modules/ui/navigation/navbar/components/__stories__/MainNavbar.stories.tsx b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/MainNavbar.stories.tsx
similarity index 96%
rename from front/src/modules/ui/navigation/navbar/components/__stories__/MainNavbar.stories.tsx
rename to front/src/modules/ui/navigation/navigation-drawer/components/__stories__/MainNavbar.stories.tsx
index 42712aa6a..07390c9fe 100644
--- a/front/src/modules/ui/navigation/navbar/components/__stories__/MainNavbar.stories.tsx
+++ b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/MainNavbar.stories.tsx
@@ -18,7 +18,7 @@ import NavItem from '../NavItem';
import NavTitle from '../NavTitle';
const meta: Meta = {
- title: 'UI/Navigation/Navbar/MainNavbar',
+ title: 'UI/Navigation/NavigationDrawer/MainNavbar',
component: MainNavbar,
decorators: [SnackBarDecorator],
};
diff --git a/front/src/modules/ui/navigation/navbar/components/__stories__/NavCollapseButton.stories.tsx b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/NavCollapseButton.stories.tsx
similarity index 89%
rename from front/src/modules/ui/navigation/navbar/components/__stories__/NavCollapseButton.stories.tsx
rename to front/src/modules/ui/navigation/navigation-drawer/components/__stories__/NavCollapseButton.stories.tsx
index 996372eee..cab355aca 100644
--- a/front/src/modules/ui/navigation/navbar/components/__stories__/NavCollapseButton.stories.tsx
+++ b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/NavCollapseButton.stories.tsx
@@ -5,7 +5,7 @@ import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator';
import NavCollapseButton from '../NavCollapseButton';
const meta: Meta = {
- title: 'UI/Navigation/Navbar/NavCollapseButton',
+ title: 'UI/Navigation/NavigationDrawer/NavCollapseButton',
component: NavCollapseButton,
};
diff --git a/front/src/modules/ui/navigation/navbar/components/__stories__/NavItem.stories.tsx b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/NavItem.stories.tsx
similarity index 76%
rename from front/src/modules/ui/navigation/navbar/components/__stories__/NavItem.stories.tsx
rename to front/src/modules/ui/navigation/navigation-drawer/components/__stories__/NavItem.stories.tsx
index 89933fe86..597e68289 100644
--- a/front/src/modules/ui/navigation/navbar/components/__stories__/NavItem.stories.tsx
+++ b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/NavItem.stories.tsx
@@ -9,8 +9,14 @@ import { CatalogStory } from '~/testing/types';
import NavItem from '../NavItem';
const meta: Meta = {
- title: 'UI/Navigation/Navbar/NavItem',
+ title: 'UI/Navigation/NavigationDrawer/NavItem',
component: NavItem,
+ args: {
+ label: 'Search',
+ Icon: IconSearch,
+ active: true,
+ },
+ argTypes: { Icon: { control: false } },
};
const StyledNavItemContainer = styled.div`
@@ -28,19 +34,11 @@ const ComponentDecorator: Decorator = (Story) => (
export default meta;
type Story = StoryObj;
-export const Default: Story = {
- args: {
- label: 'Search',
- Icon: IconSearch,
- onClick: () => console.log('clicked'),
- active: true,
- },
- argTypes: { Icon: { control: false }, onClick: { control: false } },
+export const Default: Story = {
decorators: [ComponentDecorator, ComponentWithRouterDecorator],
};
export const Catalog: CatalogStory = {
- args: Default.args,
decorators: [
ComponentDecorator,
CatalogDecorator,
@@ -75,21 +73,28 @@ export const Catalog: CatalogStory = {
},
};
-export const Soon: Story = {
+export const WithSoonPill: Story = {
+ ...Default,
args: {
- ...Default.args,
active: false,
soon: true,
},
- argTypes: { Icon: { control: false }, onClick: { control: false } },
- decorators: [ComponentDecorator, ComponentWithRouterDecorator],
};
-export const Count: Story = {
+export const WithCount: Story = {
+ ...Default,
args: {
- ...Default.args,
count: 3,
},
- argTypes: { Icon: { control: false }, onClick: { control: false } },
- decorators: [ComponentDecorator, ComponentWithRouterDecorator],
+};
+
+export const WithKeyboardKeys: Story = {
+ ...Default,
+ args: {
+ className: "hover",
+ keyboard: ['⌘', 'K'],
+ },
+ parameters: {
+ pseudo: { hover: [".hover"] },
+ }
};
diff --git a/front/src/modules/ui/navigation/navbar/components/__stories__/SubMenuNavbar.stories.tsx b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/SubMenuNavbar.stories.tsx
similarity index 95%
rename from front/src/modules/ui/navigation/navbar/components/__stories__/SubMenuNavbar.stories.tsx
rename to front/src/modules/ui/navigation/navigation-drawer/components/__stories__/SubMenuNavbar.stories.tsx
index e090f4a15..6da4375ab 100644
--- a/front/src/modules/ui/navigation/navbar/components/__stories__/SubMenuNavbar.stories.tsx
+++ b/front/src/modules/ui/navigation/navigation-drawer/components/__stories__/SubMenuNavbar.stories.tsx
@@ -14,7 +14,7 @@ import NavTitle from '../NavTitle';
import SubMenuNavbar from '../SubMenuNavbar';
const meta: Meta = {
- title: 'UI/Navigation/Navbar/SubMenuNavbar',
+ title: 'UI/Navigation/NavigationDrawer/SubMenuNavbar',
component: SubMenuNavbar,
};
diff --git a/front/src/modules/ui/navigation/navigation-drawer/constants/index.ts b/front/src/modules/ui/navigation/navigation-drawer/constants/index.ts
new file mode 100644
index 000000000..7c31a35ac
--- /dev/null
+++ b/front/src/modules/ui/navigation/navigation-drawer/constants/index.ts
@@ -0,0 +1,6 @@
+export const desktopNavDrawerWidths = {
+ menu: '236px',
+ submenu: '536px',
+};
+
+export const githubLink = 'https://github.com/twentyhq/twenty';
diff --git a/front/src/modules/ui/navigation/states/navigationDrawerState.ts b/front/src/modules/ui/navigation/states/navigationDrawerState.ts
new file mode 100644
index 000000000..bb3890f1a
--- /dev/null
+++ b/front/src/modules/ui/navigation/states/navigationDrawerState.ts
@@ -0,0 +1,6 @@
+import { atom } from 'recoil';
+
+export const navigationDrawerState = atom<'main' | 'settings' | ''>({
+ key: 'ui/navigationDrawerState',
+ default: 'main',
+});
diff --git a/front/src/modules/ui/navigation/states/navigationMemorizedUrlState.ts b/front/src/modules/ui/navigation/states/navigationMemorizedUrlState.ts
new file mode 100644
index 000000000..6537c265a
--- /dev/null
+++ b/front/src/modules/ui/navigation/states/navigationMemorizedUrlState.ts
@@ -0,0 +1,6 @@
+import { atom } from 'recoil';
+
+export const navigationMemorizedUrlState = atom({
+ key: 'navigationMemorizedUrlState',
+ default: '/',
+});
diff --git a/front/src/modules/ui/object/record-table/components/RecordTableBody.tsx b/front/src/modules/ui/object/record-table/components/RecordTableBody.tsx
index fbcbbc177..0c3c443af 100644
--- a/front/src/modules/ui/object/record-table/components/RecordTableBody.tsx
+++ b/front/src/modules/ui/object/record-table/components/RecordTableBody.tsx
@@ -6,16 +6,18 @@ import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadata
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
import { useObjectRecordTable } from '@/object-record/hooks/useObjectRecordTable';
import { isFetchingMoreRecordsFamilyState } from '@/object-record/states/isFetchingMoreRecordsFamilyState';
+import {
+ RecordTableRow,
+ StyledRow,
+} from '@/ui/object/record-table/components/RecordTableRow';
+import { RowIdContext } from '@/ui/object/record-table/contexts/RowIdContext';
+import { RowIndexContext } from '@/ui/object/record-table/contexts/RowIndexContext';
+import { isFetchingRecordTableDataState } from '@/ui/object/record-table/states/isFetchingRecordTableDataState';
import { isDefined } from '~/utils/isDefined';
-import { RowIdContext } from '../contexts/RowIdContext';
-import { RowIndexContext } from '../contexts/RowIndexContext';
import { useRecordTable } from '../hooks/useRecordTable';
-import { isFetchingRecordTableDataState } from '../states/isFetchingRecordTableDataState';
import { tableRowIdsState } from '../states/tableRowIdsState';
-import { RecordTableRow, StyledRow } from './RecordTableRow';
-
export const RecordTableBody = () => {
const { ref: lastTableRowRef, inView: lastTableRowIsVisible } = useInView();
@@ -41,6 +43,7 @@ export const RecordTableBody = () => {
isFetchingRecordTableDataState,
);
+ // Todo, move this to an effect to not trigger many re-renders
const { fetchMoreRecords: fetchMoreObjects } = useObjectRecordTable();
useEffect(() => {
diff --git a/front/src/utils/measureTotalFrameLoad.ts b/front/src/utils/measureTotalFrameLoad.ts
deleted file mode 100644
index ee98812d5..000000000
--- a/front/src/utils/measureTotalFrameLoad.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-/* eslint-disable no-console */
-import afterFrame from 'afterframe';
-
-export const measureTotalFrameLoad = (id: string) => {
- const timerId = `Total loading time for : ${id}`;
-
- console.time(timerId);
-
- afterFrame(() => {
- console.timeEnd(timerId);
- });
-};