Skip to content

Commit b83875f

Browse files
committed
♻️(frontend) move Panel component
We will have multiple Panel components in the future, so we move it to the root of the components folder. We refacto the Version Panel to use the new Panel component.
1 parent 7a8caf5 commit b83875f

File tree

6 files changed

+32
-32
lines changed

6 files changed

+32
-32
lines changed

src/frontend/apps/e2e/__tests__/app-impress/doc-version.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ test.describe('Doc Version', () => {
1919
})
2020
.click();
2121

22-
const panel = page.getByLabel('Document version panel');
22+
const panel = page.getByLabel('Document panel');
2323

2424
await expect(panel.getByText('Current version')).toBeVisible();
2525
expect(await panel.locator('li').count()).toBe(1);
@@ -79,7 +79,7 @@ test.describe('Doc Version', () => {
7979
page.getByRole('button', { name: 'Version history' }),
8080
).toBeHidden();
8181

82-
await expect(page.getByLabel('Document version panel')).toBeHidden();
82+
await expect(page.getByLabel('Document panel')).toBeHidden();
8383
});
8484

8585
test('it restores the doc version', async ({ page, browserName }) => {
@@ -112,7 +112,7 @@ test.describe('Doc Version', () => {
112112
})
113113
.click();
114114

115-
const panel = page.getByLabel('Document version panel');
115+
const panel = page.getByLabel('Document panel');
116116
await panel.locator('li').nth(1).click();
117117
await expect(page.getByText('World')).toBeHidden();
118118

@@ -167,7 +167,7 @@ test.describe('Doc Version', () => {
167167
})
168168
.click();
169169

170-
const panel = page.getByLabel('Document version panel');
170+
const panel = page.getByLabel('Document panel');
171171
await panel.locator('li').nth(1).click();
172172
await expect(page.getByText('World')).toBeHidden();
173173

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
1-
import React, { useEffect, useState } from 'react';
1+
import React, { PropsWithChildren, useEffect, useState } from 'react';
22
import { useTranslation } from 'react-i18next';
33

44
import { Box, Card, IconBG, Text } from '@/components';
55
import { useCunninghamTheme } from '@/cunningham';
6-
import { Doc } from '@/features/docs/doc-management';
7-
8-
import { useDocVersionStore } from '../stores';
9-
10-
import { VersionList } from './VersionList';
116

127
interface PanelProps {
13-
doc: Doc;
8+
title: string;
9+
setIsPanelOpen: (isOpen: boolean) => void;
1410
}
1511

16-
export const Panel = ({ doc }: PanelProps) => {
12+
export const Panel = ({
13+
children,
14+
title,
15+
setIsPanelOpen,
16+
}: PropsWithChildren<PanelProps>) => {
1717
const { t } = useTranslation();
1818
const { colorsTokens } = useCunninghamTheme();
19-
const { setIsPanelOpen } = useDocVersionStore();
2019

2120
const [isOpen, setIsOpen] = useState(false);
2221

@@ -50,7 +49,7 @@ export const Panel = ({ doc }: PanelProps) => {
5049
`
5150
}
5251
`}
53-
aria-label={t('Document version panel')}
52+
aria-label={t('Document panel')}
5453
{...closedOverridingStyles}
5554
>
5655
<Box
@@ -69,11 +68,7 @@ export const Panel = ({ doc }: PanelProps) => {
6968
>
7069
<IconBG
7170
iconName="menu_open"
72-
aria-label={
73-
isOpen
74-
? t('Close the document version panel')
75-
: t('Open the document version panel')
76-
}
71+
aria-label={isOpen ? t('Close the panel') : t('Open the panel')}
7772
$background="transparent"
7873
$size="h2"
7974
$zIndex={1}
@@ -96,10 +91,10 @@ export const Panel = ({ doc }: PanelProps) => {
9691
$radius="2px"
9792
/>
9893
<Text $weight="bold" $size="l" $theme="primary">
99-
{t('VERSIONS')}
94+
{title}
10095
</Text>
10196
</Box>
102-
<VersionList doc={doc} />
97+
{children}
10398
</Box>
10499
</Card>
105100
);

src/frontend/apps/impress/src/features/docs/doc-editor/components/DocEditor.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import React from 'react';
55
import { useTranslation } from 'react-i18next';
66

77
import { Box, Card, Text, TextErrors } from '@/components';
8+
import { Panel } from '@/components/Panel';
89
import { useCunninghamTheme } from '@/cunningham';
910
import { DocHeader } from '@/features/docs/doc-header';
1011
import { Doc } from '@/features/docs/doc-management';
1112
import {
12-
Panel,
13+
VersionList,
1314
Versions,
1415
useDocVersion,
1516
useDocVersionStore,
@@ -25,7 +26,7 @@ export const DocEditor = ({ doc }: DocEditorProps) => {
2526
const {
2627
query: { versionId },
2728
} = useRouter();
28-
const { isPanelOpen } = useDocVersionStore();
29+
const { isPanelVersionOpen, setIsPanelVersionOpen } = useDocVersionStore();
2930

3031
const { t } = useTranslation();
3132

@@ -64,7 +65,11 @@ export const DocEditor = ({ doc }: DocEditorProps) => {
6465
<BlockNoteEditor doc={doc} />
6566
)}
6667
</Card>
67-
{doc.abilities.versions_list && isPanelOpen && <Panel doc={doc} />}
68+
{doc.abilities.versions_list && isPanelVersionOpen && (
69+
<Panel title={t('VERSIONS')} setIsPanelOpen={setIsPanelVersionOpen}>
70+
<VersionList doc={doc} />
71+
</Panel>
72+
)}
6873
</Box>
6974
</>
7075
);

src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const DocToolBox = ({ doc }: DocToolBoxProps) => {
2424
const [isModalRemoveOpen, setIsModalRemoveOpen] = useState(false);
2525
const [isModalPDFOpen, setIsModalPDFOpen] = useState(false);
2626
const [isDropOpen, setIsDropOpen] = useState(false);
27-
const { setIsPanelOpen } = useDocVersionStore();
27+
const { setIsPanelVersionOpen } = useDocVersionStore();
2828

2929
return (
3030
<Box
@@ -82,7 +82,7 @@ export const DocToolBox = ({ doc }: DocToolBoxProps) => {
8282
{doc.abilities.versions_list && (
8383
<Button
8484
onClick={() => {
85-
setIsPanelOpen(true);
85+
setIsPanelVersionOpen(true);
8686
setIsDropOpen(false);
8787
}}
8888
color="primary-text"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export * from './ModalVersion';
2-
export * from './Panel';
2+
export * from './VersionList';
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { create } from 'zustand';
22

33
export interface UseDocVersionStore {
4-
isPanelOpen: boolean;
5-
setIsPanelOpen: (isOpen: boolean) => void;
4+
isPanelVersionOpen: boolean;
5+
setIsPanelVersionOpen: (isOpen: boolean) => void;
66
}
77

88
export const useDocVersionStore = create<UseDocVersionStore>((set) => ({
9-
isPanelOpen: false,
10-
setIsPanelOpen: (isPanelOpen) => {
11-
set(() => ({ isPanelOpen }));
9+
isPanelVersionOpen: false,
10+
setIsPanelVersionOpen: (isPanelVersionOpen) => {
11+
set(() => ({ isPanelVersionOpen }));
1212
},
1313
}));

0 commit comments

Comments
 (0)