Skip to content

Commit 99eeb5a

Browse files
committed
Refactoring delete pages action
1 parent 813323e commit 99eeb5a

14 files changed

+129
-105
lines changed

frontend/apps/ui/src/components/document/ContextMenu__to_be_removed.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ import {
3838
} from "@tabler/icons-react"
3939
import {useContext, useRef} from "react"
4040
import {useNavigate} from "react-router-dom"
41-
import DeleteEntireDocumentConfirm from "./DeleteEntireDocumentConfirm"
42-
import DeletePagesButton from "./DeletePagesButton"
43-
import EditTitleButton from "./EditTitleButton"
41+
import DeleteEntireDocumentConfirm from "../../features/document/components/DeleteEntireDocumentConfirm"
42+
import DeletePagesButton from "../../features/document/components/DeletePagesButton"
43+
import EditTitleButton from "../../features/document/components/EditTitleButton"
44+
import PageOCRDialog from "../../features/document/components/PageOCRDialog"
45+
import RotateButton from "../../features/document/components/RotateButton"
46+
import RotateCCButton from "../../features/document/components/RotateCCButton"
4447
import MoveDocumentDialogConfirm from "./MoveDocumentDialogConfirm"
45-
import PageOCRDialog from "./PageOCRDialog"
46-
import RotateButton from "./RotateButton"
47-
import RotateCCButton from "./RotateCCButton"
4848

4949
interface Args {
5050
opened: boolean

frontend/apps/ui/src/components/document/DeletePagesButton.tsx

Lines changed: 0 additions & 84 deletions
This file was deleted.

frontend/apps/ui/src/components/document/ActionButtons.tsx renamed to frontend/apps/ui/src/features/document/components/ActionButtons.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
import {useAppDispatch} from "@/app/hooks"
22
import ToggleSecondaryPanel from "@/components/DualPanel/ToggleSecondaryPanel"
33
import PanelContext from "@/contexts/PanelContext"
4+
import DeletePagesButton from "@/features/document/components/DeletePagesButton"
5+
import EditTitleButton from "@/features/document/components/EditTitleButton"
46
import {updateActionPanel} from "@/features/ui/uiSlice"
57
import {useRuntimeConfig} from "@/hooks/runtime_config"
68
import {Group} from "@mantine/core"
79
import {useViewportSize} from "@mantine/hooks"
810
import {useContext, useEffect, useRef} from "react"
9-
import DeletePagesButton from "./DeletePagesButton"
10-
import EditTitleButton from "./EditTitleButton"
1111

1212
import DuplicatePanelButton from "@/components/DualPanel/DuplicatePanelButton"
1313
import DownloadButton from "@/features/document/components/DownloadButton"
14+
import RotateButton from "@/features/document/components/RotateButton"
15+
import RotateCCButton from "@/features/document/components/RotateCCButton"
16+
import RunOCRButton from "@/features/document/components/RunOCRButton"
1417
import {useCurrentDocVer, useSelectedPages} from "@/features/document/hooks"
15-
import RotateButton from "./RotateButton"
16-
import RotateCCButton from "./RotateCCButton"
17-
import RunOCRButton from "./RunOCRButton"
1818

1919
interface Args {
2020
onEditNodeTitleClicked: () => void
2121
onRotateCWClicked: () => void
2222
onRotateCCClicked: () => void
23+
onDeletePagesClicked: () => void
2324
}
2425

2526
export default function ActionButtons({
2627
onEditNodeTitleClicked,
2728
onRotateCWClicked,
28-
onRotateCCClicked
29+
onRotateCCClicked,
30+
onDeletePagesClicked
2931
}: Args) {
3032
const {height, width} = useViewportSize()
3133
const dispatch = useAppDispatch()
@@ -60,7 +62,9 @@ export default function ActionButtons({
6062
{selectedPages.length > 0 && (
6163
<RotateCCButton onClick={onRotateCCClicked} />
6264
)}
63-
{selectedPages.length > 0 && <DeletePagesButton />}
65+
{selectedPages.length > 0 && (
66+
<DeletePagesButton onClick={onDeletePagesClicked} />
67+
)}
6468
</Group>
6569
<Group>
6670
<DuplicatePanelButton />

frontend/apps/ui/src/features/document/components/ContextMenu/ContextMenu.tsx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import {useAppSelector} from "@/app/hooks"
22
import {useCurrentDocVer, useSelectedPages} from "@/features/document/hooks"
3-
import {selectOtherPanelComponent} from "@/features/ui/uiSlice"
3+
import {
4+
selectOtherPanelComponent,
5+
selectViewerPagesHaveChangedDialogVisibility
6+
} from "@/features/ui/uiSlice"
47
import {usePanelMode} from "@/hooks"
58
import {useEffect, useState} from "react"
69
import {ContextMenu, ExtractPagesDirection, MoveDocumentDirection} from "viewer"
@@ -14,14 +17,20 @@ interface Args {
1417
onEditNodeTitleItemClicked: () => void
1518
onRotateCWItemClicked: () => void
1619
onRotateCCItemClicked: () => void
20+
onResetChangesItemClicked: () => void
21+
onSaveChangesItemClicked: () => void
22+
onDeletePagesItemClicked: () => void
1723
}
1824

1925
export default function ContextMenuContainer({
2026
opened,
2127
position,
2228
onEditNodeTitleItemClicked,
2329
onRotateCCItemClicked,
24-
onRotateCWItemClicked
30+
onRotateCWItemClicked,
31+
onResetChangesItemClicked,
32+
onSaveChangesItemClicked,
33+
onDeletePagesItemClicked
2534
}: Args) {
2635
const [showExtractPagesItem, setShowExtractPagesItem] = useState<
2736
ExtractPagesDirection | undefined
@@ -35,6 +44,10 @@ export default function ContextMenuContainer({
3544
const otherPanelComponent = useAppSelector(s =>
3645
selectOtherPanelComponent(s, mode)
3746
)
47+
const visibility = useAppSelector(
48+
selectViewerPagesHaveChangedDialogVisibility
49+
)
50+
const showPagesHaveChangedRelatedItems = visibility == "opened"
3851

3952
const hasSelectedPages = selectedPages && selectedPages.length > 0
4053

@@ -69,9 +82,15 @@ export default function ContextMenuContainer({
6982
showDeletePagesItem={hasSelectedPages}
7083
showRotateCCItem={hasSelectedPages}
7184
showRotateCWItem={hasSelectedPages}
85+
showResetChangesItem={showPagesHaveChangedRelatedItems}
86+
showSaveChangesItem={showPagesHaveChangedRelatedItems}
87+
showViewOCRedTextItem={false}
7288
onChangeTitleItemClicked={onEditNodeTitleItemClicked}
7389
onRotateCCItemClicked={onRotateCCItemClicked}
7490
onRotateCWItemClicked={onRotateCWItemClicked}
91+
onResetChangesItemClicked={onResetChangesItemClicked}
92+
onSaveChangesItemClicked={onSaveChangesItemClicked}
93+
onDeletePagesItemClicked={onDeletePagesItemClicked}
7594
/>
7695
)
7796
}

frontend/apps/ui/src/components/document/DeleteEntireDocumentConfirm.tsx renamed to frontend/apps/ui/src/features/document/components/DeleteEntireDocumentConfirm.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ export default function DeleteWithAllPagesSelected({
5252
{error && <Error message={error} />}
5353
<Group justify="space-between" mt="md">
5454
<Button variant="default" onClick={onCancel}>
55-
{t("common.yes")}
55+
{t("common.no")}
5656
</Button>
5757
<Group>
5858
{isLoading && <Loader size="sm" />}
5959
<Button disabled={isLoading} onClick={onDeleteDocument} color={"red"}>
60-
{t("common.no")}
60+
{t("common.yes")}
6161
</Button>
6262
</Group>
6363
</Group>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import {ActionIcon, Tooltip} from "@mantine/core"
2+
import {IconTrash} from "@tabler/icons-react"
3+
4+
interface Args {
5+
onClick: () => void
6+
}
7+
8+
export default function DeleteButton({onClick}: Args) {
9+
return (
10+
<>
11+
<Tooltip withArrow label="Delete">
12+
<ActionIcon size="lg" onClick={onClick} color={"red"}>
13+
<IconTrash />
14+
</ActionIcon>
15+
</Tooltip>
16+
</>
17+
)
18+
}

frontend/apps/ui/src/features/document/components/PageHaveChangedDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import {
99
selectAllPages
1010
} from "@/features/document/store/documentVersSlice"
1111

12+
import {applyPageChangesThunk} from "@/features/document/actions/applyPageOpChanges"
13+
import {useCurrentDocVer} from "@/features/document/hooks"
1214
import {
1315
selectViewerPagesHaveChangedDialogVisibility,
1416
viewerPageHaveChangedDialogVisibilityChanged
1517
} from "@/features/ui/uiSlice"
1618
import {PanelMode} from "@/types"
1719
import type {I18NPagesHaveChangedDialogText} from "viewer"
1820
import {PagesHaveChangedDialog} from "viewer"
19-
import {applyPageChangesThunk} from "../actions/applyPageOpChanges"
20-
import {useCurrentDocVer} from "../hooks"
2121

2222
interface Args {
2323
docID: string

0 commit comments

Comments
 (0)