feat: delete select article and disable double click row selection

This commit is contained in:
2026-04-26 03:21:03 +03:00
parent 7f8b90c15e
commit 248eea6f85
13 changed files with 15 additions and 133 deletions

View File

@@ -2,8 +2,6 @@ import {
Box,
Button,
Typography,
Menu,
MenuItem,
TextField,
Slider,
Stack,
@@ -13,7 +11,6 @@ import {
BackButton,
editSightStore,
languageStore,
SelectArticleModal,
SelectMediaDialog,
TabPanel,
UploadMediaDialog,
@@ -40,8 +37,6 @@ import { SightFramePreview } from "./SightFramePreview";
export const RightWidgetTab = observer(
({ value, index }: { value: number; index: number }) => {
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
const {
sight,
updateRightArticleInfo,
@@ -52,7 +47,6 @@ export const RightWidgetTab = observer(
linkPreviewMedia,
unlinkRightArticle,
deleteRightArticle,
linkArticle,
deleteRightArticleMedia,
createLinkWithRightArticle,
setFileToUpload,
@@ -94,24 +88,15 @@ export const RightWidgetTab = observer(
const [activeArticleIndex, setActiveArticleIndex] = useState<number | null>(
null
);
const [isSelectModalOpen, setIsSelectModalOpen] = useState(false);
const [isSelectMediaModalOpen, setIsSelectMediaModalOpen] = useState(false);
const [isDeleteArticleModalOpen, setIsDeleteArticleModalOpen] =
useState(false);
const open = Boolean(anchorEl);
const handleDeleteArticle = () => {
deleteRightArticle(sight[language].right[activeArticleIndex || 0].id);
setActiveArticleIndex(null);
};
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
const handleSelectArticle = (index: number) => {
setActiveArticleIndex(index);
};
@@ -119,7 +104,6 @@ export const RightWidgetTab = observer(
const handleCreateNew = async () => {
try {
const newArticleId = await createNewRightArticle();
handleClose();
const newIndex = sight[language].right.findIndex(
(article) => article.id === newArticleId
@@ -133,32 +117,6 @@ export const RightWidgetTab = observer(
}
};
const handleSelectExisting = () => {
setIsSelectModalOpen(true);
handleClose();
};
const handleCloseSelectModal = () => {
setIsSelectModalOpen(false);
};
const handleArticleSelect = async (id: number) => {
try {
const linkedArticleId = await linkArticle(id);
handleCloseSelectModal();
const newIndex = sight[language].right.findIndex(
(article) => article.id === linkedArticleId
);
if (newIndex > -1) {
setActiveArticleIndex(newIndex);
setType("article");
}
} catch (error) {
console.error("Error linking article:", error);
}
};
const handleMediaSelected = async (media: {
id: string;
filename: string;
@@ -276,27 +234,10 @@ export const RightWidgetTab = observer(
</Box>
<button
className="w-10 h-10 bg-blue-500 rounded-full absolute bottom-5 left-5 flex items-center justify-center"
onClick={handleClick}
onClick={handleCreateNew}
>
<Plus size={20} color="white" />
</button>
<Menu
id="basic-menu"
anchorEl={anchorEl}
open={open}
onClose={handleClose}
MenuListProps={{
"aria-labelledby": "basic-button",
}}
sx={{ mt: 1 }}
>
<MenuItem onClick={handleCreateNew}>
<Typography>Создать новую</Typography>
</MenuItem>
<MenuItem onClick={handleSelectExisting}>
<Typography>Выбрать существующую статью</Typography>
</MenuItem>
</Menu>
</Box>
{type === "article" && (
@@ -557,12 +498,6 @@ export const RightWidgetTab = observer(
}}
/>
<SelectArticleModal
open={isSelectModalOpen}
onClose={handleCloseSelectModal}
onSelectArticle={handleArticleSelect}
linkedArticleIds={sight[language].right.map((article) => article.id)}
/>
<SelectMediaDialog
open={isSelectMediaModalOpen}
onClose={() => setIsSelectMediaModalOpen(false)}